alistair23-linux/fs/nfs
Trond Myklebust bd171930e6 NFSv4.1: Fix a race in nfs4_proc_layoutget
If the task calling layoutget is signalled, then it is possible for the
calls to nfs4_sequence_free_slot() and nfs4_layoutget_prepare() to race,
in which case we leak a slot.
The fix is to move the call to nfs4_sequence_free_slot() into the
nfs4_layoutget_release() so that it gets called at task teardown time.

Fixes: 2e80dbe7ac ("NFSv4.1: Close callback races for OPEN, LAYOUTGET...")
Cc: stable@vger.kernel.org # v4.8+
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2017-06-27 21:44:58 -04:00
..
blocklayout lib/vsprintf.c: remove %Z support 2017-02-27 18:43:47 -08:00
filelayout nfs/filelayout: fix NULL pointer dereference in fl_pnfs_update_layout() 2017-04-28 13:06:59 -04:00
flexfilelayout pNFS/flexfiles: missing error code in ff_layout_alloc_lseg() 2017-05-24 07:52:54 -04:00
cache_lib.c
cache_lib.h
callback.c NFSv4: Fix callback server shutdown 2017-04-27 18:00:16 -04:00
callback.h
callback_proc.c NFSv4: Fix an rcu lock leak 2017-05-08 09:27:59 -04:00
callback_xdr.c NFS: Remove extra dprintk()s from callback_xdr.c 2017-04-20 13:39:33 -04:00
client.c NFS client updates for Linux 4.12 2017-05-10 13:03:38 -07:00
delegation.c
delegation.h
dir.c nfs: use kmap/kunmap directly 2017-05-05 13:01:33 -04:00
direct.c NFS client updates for Linux 4.12 2017-05-10 13:03:38 -07:00
dns_resolve.c
dns_resolve.h
file.c NFSv4: Don't special case "launder" 2017-04-26 13:03:04 -04:00
fscache-index.c
fscache.c
fscache.h
getroot.c
inode.c NFS: always treat the invocation of nfs_getattr as cache hit when noac is on 2017-05-05 13:01:32 -04:00
internal.h nfs: Mark unnecessarily extern functions as static 2017-06-03 16:06:38 -04:00
io.c
iostat.h
Kconfig nfs: remove the objlayout driver 2017-04-20 15:51:23 -04:00
Makefile nfs: remove the objlayout driver 2017-04-20 15:51:23 -04:00
mount_clnt.c
namespace.c NFS: Use ERR_CAST() to avoid cross-structure cast 2017-05-28 10:11:47 -07:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c
nfs3client.c
nfs3proc.c NFSv3: nfs3_nlm_alloc_call should be declared static 2017-04-25 16:25:06 -04:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h
nfs4client.c NFSv4.0: Fix a lock leak in nfs40_walk_client_list 2017-05-24 08:05:16 -04:00
nfs4file.c
nfs4getroot.c NFS: Clean up nfs4_get_rootfh() 2017-04-20 13:39:35 -04:00
nfs4idmap.c KEYS: Differentiate uses of rcu_dereference_key() and user_key_payload() 2017-03-02 10:09:00 +11:00
nfs4idmap.h
nfs4namespace.c NFS: Remove extra dprintk()s from nfs4namespace.c 2017-04-20 13:39:35 -04:00
nfs4proc.c NFSv4.1: Fix a race in nfs4_proc_layoutget 2017-06-27 21:44:58 -04:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFS: Trunking detection should handle ERESTARTSYS/EINTR 2017-06-27 21:44:58 -04:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c NFSv4: Fix exclusive create attributes encoding 2017-05-08 09:40:59 -04:00
nfs42.h
nfs42proc.c NFS fix COMMIT after COPY 2017-05-24 07:52:48 -04:00
nfs42xdr.c NFS append COMMIT after synchronous COPY 2017-05-08 19:01:06 -04:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFS: Add an iocounter wait function for async RPC tasks 2017-04-21 10:45:01 -04:00
pnfs.c pnfs: Fix the check for requests in range of layout segment 2017-05-24 07:55:02 -04:00
pnfs.h pnfs: Fix the check for requests in range of layout segment 2017-05-24 07:55:02 -04:00
pnfs_dev.c
pnfs_nfs.c pNFS: Fix NULL dereference in pnfs_generic_alloc_ds_commits 2017-05-03 12:29:41 -04:00
proc.c lockd: Introduce nlmclnt_operations 2017-04-21 10:45:01 -04:00
read.c NFS: move rw_mode to nfs_pageio_header 2017-04-20 14:00:41 -04:00
super.c nfs: Mark unnecessarily extern functions as static 2017-06-03 16:06:38 -04:00
symlink.c
sysctl.c
unlink.c
write.c NFS client updates for Linux 4.12 2017-05-10 13:03:38 -07:00