1
0
Fork 0
remarkable-linux/fs
Sachin Prabhu f1f125da12 cifs: Create dedicated keyring for spnego operations
[ Upstream commit b74cb9a802 ]

The session key is the default keyring set for request_key operations.
This session key is revoked when the user owning the session logs out.
Any long running daemon processes started by this session ends up with
revoked session keyring which prevents these processes from using the
request_key mechanism from obtaining the krb5 keys.

The problem has been reported by a large number of autofs users. The
problem is also seen with multiuser mounts where the share may be used
by processes run by a user who has since logged out. A reproducer using
automount is available on the Red Hat bz.

The patch creates a new keyring which is used to cache cifs spnego
upcalls.

Red Hat bz: 1267754

Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
Reported-by: Scott Mayhew <smayhew@redhat.com>
Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
2016-06-06 19:12:29 -04:00
..
9p 9p: don't leave a half-initialized inode sitting around 2015-08-03 09:29:18 -07:00
adfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
affs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
afs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
autofs4 VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
befs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
bfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
btrfs btrfs: bugfix: handle FS_IOC32_{GETFLAGS,SETFLAGS,GETVERSION} in btrfs_ioctl 2016-06-03 19:15:34 -04:00
cachefiles VFS: fs/cachefiles: d_backing_inode() annotations 2015-04-15 15:06:59 -04:00
ceph ceph: fix message length computation 2015-12-14 21:24:37 -08:00
cifs cifs: Create dedicated keyring for spnego operations 2016-06-06 19:12:29 -04:00
coda VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
configfs sysfs: Create mountpoints with sysfs_create_mount_point 2015-07-21 10:10:01 -07:00
cramfs
debugfs debugfs: Make automount point inodes permanently empty 2016-04-20 01:08:55 -04:00
devpts pty: make sure super_block is still valid in final /dev/tty close 2016-02-28 00:09:50 -05:00
dlm
ecryptfs eCryptfs: Invalidate dcache entries when lower i_nlink is zero 2015-09-29 19:26:15 +02:00
efivarfs efi: Make efivarfs entries immutable by default 2016-04-11 22:44:23 -04:00
efs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
exofs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
exportfs VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry) 2015-02-22 11:38:41 -05:00
ext2 dax: don't abuse get_block mapping for endio callbacks 2016-04-11 22:44:21 -04:00
ext3 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
ext4 ext4: silence UBSAN in ext4_mb_init() 2016-06-03 19:15:48 -04:00
f2fs f2fs: fix wrong error hanlder in f2fs_follow_link 2015-05-04 14:15:16 -07:00
fat Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
freevxfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
fscache
fuse fuse: Add reference counting for fuse_io_priv 2016-04-18 08:50:57 -04:00
gfs2 fs: create and use seq_show_option for escaping 2015-09-21 10:05:45 -07:00
hfs hfs,hfsplus: cache pages correctly between bnode_create and bnode_free 2015-09-29 19:26:18 +02:00
hfsplus hfs,hfsplus: cache pages correctly between bnode_create and bnode_free 2015-09-29 19:26:18 +02:00
hostfs uml: fix hostfs mknod() 2016-02-03 14:01:45 -05:00
hpfs hpfs: don't truncate the file when delete fails 2016-03-09 13:15:12 -05:00
hppfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
hugetlbfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
isofs get_rock_ridge_filename(): handle malformed NM entries 2016-05-17 13:43:04 -04:00
jbd
jbd2 jbd2: fix FS corruption possibility in jbd2_journal_destroy() on umount path 2016-04-18 08:50:52 -04:00
jffs2 jffs2: reduce the breakage on recovery from halfway failed rename() 2016-03-22 11:10:30 -04:00
jfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
kernfs kernfs: Add support for always empty directories. 2015-07-21 10:10:00 -07:00
lockd nfsd: eliminate NFSD_DEBUG 2015-04-21 16:16:02 -04:00
logfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
minix VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
ncpfs ncpfs: fix a braino in OOM handling in ncp_fill_cache() 2016-03-22 11:10:30 -04:00
nfs NFSv4: Fix a dentry leak on alias use 2016-03-07 12:27:25 -05:00
nfs_common
nfsd nfsd: fix deadlock secinfo+readdir compound 2016-04-18 08:51:00 -04:00
nilfs2 nilfs2: fix sanity check of btree level in nilfs_btree_root_broken() 2015-05-05 17:10:11 -07:00
nls
notify fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() 2015-08-16 20:52:09 -07:00
ntfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
ocfs2 ocfs2: fix posix_acl_create deadlock 2016-05-17 13:43:14 -04:00
omfs omfs: fix potential integer overflow in allocator 2015-05-28 18:25:19 -07:00
openpromfs
overlayfs ovl: fix permission checking for setattr 2016-04-13 17:14:29 -04:00
proc ptrace: use fsuid, fsgid, effective creds for fs access checks 2016-04-11 22:07:35 -04:00
pstore sysfs: Create mountpoints with sysfs_create_mount_point 2015-07-21 10:10:01 -07:00
qnx4
qnx6 VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
quota quota: Fix possible GPF due to uninitialised pointers 2016-04-18 08:50:45 -04:00
ramfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
reiserfs fs: create and use seq_show_option for escaping 2015-09-21 10:05:45 -07:00
romfs make new_sync_{read,write}() static 2015-04-11 22:29:40 -04:00
squashfs VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
sysfs mnt: Refactor the logic for mounting sysfs and proc in a user namespace 2015-07-21 10:10:01 -07:00
sysv VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
tracefs sysfs: Create mountpoints with sysfs_create_mount_point 2015-07-21 10:10:01 -07:00
ubifs UBIFS: Kill unneeded locking in ubifs_init_security 2015-10-22 14:43:24 -07:00
udf udf: Check output buffer length when converting name to CS0 2016-02-01 14:54:15 -05:00
ufs fs/ufs: restore s_lock mutex_init() 2015-07-10 09:49:39 -07:00
xfs xfs: skip stale inodes in xfs_iflush_cluster 2016-06-06 19:12:26 -04:00
Kconfig f2fs: relocate Kconfig from misc filesystems 2015-04-10 15:08:35 -07:00
Kconfig.binfmt mm: split ET_DYN ASLR from mmap ASLR 2015-04-14 16:49:05 -07:00
Makefile This adds the new tracefs file system. This has been in linux-next for 2015-04-14 10:22:29 -07:00
aio.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-16 23:27:56 -04:00
anon_inodes.c
attr.c
bad_inode.c don't bother with most of the bad_file_ops methods 2015-02-20 04:03:58 -05:00
binfmt_aout.c
binfmt_elf.c fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings 2015-05-28 18:25:18 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-04-26 17:22:07 -07:00
binfmt_script.c
block_dev.c blockdev: don't set S_DAX for misaligned partitions 2015-10-22 14:43:13 -07:00
buffer.c page_writeback: clean up mess around cancel_dirty_page() 2015-04-14 16:49:01 -07:00
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c Bluetooth: bnep: Add support for get bnep features via ioctl 2015-04-03 23:21:34 +02:00
coredump.c fs/coredump: prevent fsuid=0 dumps into user-controlled directories 2016-04-18 08:51:07 -04:00
dax.c dax: don't abuse get_block mapping for endio callbacks 2016-04-11 22:44:21 -04:00
dcache.c use ->d_seq to get coherency between ->d_inode and ->d_flags 2016-03-09 13:15:20 -05:00
dcookies.c
direct-io.c fix the regression from "direct-io: Fix negative return from dio read beyond eof" 2016-01-31 11:23:40 -08:00
drop_caches.c
eventfd.c eventfd: don't take the spinlock in eventfd_poll 2015-02-17 14:34:52 -08:00
eventpoll.c
exec.c parisc,metag: Fix crashes due to stack randomization on stack-grows-upwards architectures 2015-05-12 22:03:44 +02:00
fcntl.c
fhandle.c fs/coredump: prevent fsuid=0 dumps into user-controlled directories 2016-04-18 08:51:07 -04:00
file.c mm: rcu-protected get_mm_exe_file() 2015-04-17 09:04:07 -04:00
file_table.c ->aio_read and ->aio_write removed 2015-04-11 22:29:43 -04:00
filesystems.c
fs-writeback.c fs: add dirtytime_expire_seconds sysctl 2015-03-17 12:23:32 -04:00
fs_pin.c fs_pin: Allow for the possibility that m_list or s_list go unused. 2015-04-09 11:39:55 -05:00
fs_struct.c
inode.c fs: Fix S_NOSEC handling 2015-07-10 09:49:37 -07:00
internal.h overlayfs: Make f_path always point to the overlay and f_inode to the underlay 2015-10-22 14:43:26 -07:00
ioctl.c
libfs.c fs: Set the size of empty dirs to 0. 2015-09-21 10:05:44 -07:00
locks.c locks: fix unlock when fcntl_setlk races with a close 2016-02-03 14:01:44 -05:00
mbcache.c
mount.h
mpage.c
namei.c atomic_open(): fix the handling of create_error 2016-05-17 13:42:53 -04:00
namespace.c mnt: In detach_mounts detach the appropriate unmounted mount 2015-08-10 12:21:55 -07:00
no-block.c
nsfs.c VFS: assorted weird filesystems: d_inode() annotations 2015-04-15 15:06:58 -04:00
open.c fs/coredump: prevent fsuid=0 dumps into user-controlled directories 2016-04-18 08:51:07 -04:00
pipe.c VFS: assorted weird filesystems: d_inode() annotations 2015-04-15 15:06:58 -04:00
pnode.c propogate_mnt: Handle the first propogated copy being a slave 2016-05-17 13:43:01 -04:00
pnode.h mnt: Clarify and correct the disconnect logic in umount_tree 2015-08-10 12:21:54 -07:00
posix_acl.c VFS: assorted d_backing_inode() annotations 2015-04-15 15:06:59 -04:00
proc_namespace.c vfs: show_vfsstat: do not ignore errors from show_devname method 2016-04-18 08:51:00 -04:00
read_write.c new_sync_write(): discard ->ki_pos unless the return value is positive 2015-04-11 22:29:46 -04:00
readdir.c
select.c
seq_file.c
signalfd.c signalfd: fix information leak in signalfd_copyinfo 2015-08-16 20:52:25 -07:00
splice.c splice: handle zero nr_pages in splice_to_pipe() 2016-04-18 08:51:05 -04:00
stack.c
stat.c VFS: assorted d_backing_inode() annotations 2015-04-15 15:06:59 -04:00
statfs.c
super.c cleancache: remove limit on the number of cleancache enabled filesystems 2015-04-14 16:49:03 -07:00
sync.c
timerfd.c
utimes.c
xattr.c