linux/fs/nfsd
Trond Myklebust c6c15e1ed3 nfsd: Fix slot wake up race in the nfsv4.1 callback code
The currect code for nfsd41_cb_get_slot() and nfsd4_cb_done() has no
locking in order to guarantee atomicity, and so allows for races of
the form.

Task 1                                  Task 2
======                                  ======
if (test_and_set_bit(0) != 0) {
                                        clear_bit(0)
                                        rpc_wake_up_next(queue)
        rpc_sleep_on(queue)
        return false;
}

This patch breaks the race condition by adding a retest of the bit
after the call to rpc_sleep_on().

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2014-11-19 15:45:44 -05:00
..
acl.h
auth.c
auth.h
cache.h nfsd: Remove the cache_hash list 2014-08-17 12:00:12 -04:00
current_stateid.h
export.c nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
export.h
fault_inject.c nfsd: remove old fault injection infrastructure 2014-08-05 10:55:10 -04:00
idmap.h
Kconfig lockd: move lockd's grace period handling into its own module 2014-09-17 16:33:11 -04:00
lockd.c
Makefile
netns.h nfsd: add some comments to the nfsd4 object definitions 2014-08-05 16:09:20 -04:00
nfs2acl.c
nfs3acl.c
nfs3proc.c nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
nfs3xdr.c
nfs4acl.c
nfs4callback.c nfsd: Fix slot wake up race in the nfsv4.1 callback code 2014-11-19 15:45:44 -05:00
nfs4idmap.c NFSD: Full checking of authentication name 2014-09-03 17:43:03 -04:00
nfs4proc.c nfsd4: fix crash on unknown operation number 2014-10-23 13:39:51 -04:00
nfs4recover.c Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 16:23:15 +02:00
nfs4state.c File locking related changes for v3.18 (pile #1) 2014-10-11 13:21:34 -04:00
nfs4xdr.c Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux 2014-10-08 12:51:44 -04:00
nfscache.c nfsd: Reorder nfsd_cache_match to check more powerful discriminators first 2014-08-17 12:00:13 -04:00
nfsctl.c nfsd: add a v4_end_grace file to /proc/fs/nfsd 2014-09-17 16:33:14 -04:00
nfsd.h nfsd: correctly define v4.2 support attributes 2014-11-19 12:03:19 -05:00
nfsfh.c NFSD: Put export if prepare_creds() fail 2014-09-03 17:43:04 -04:00
nfsfh.h
nfsproc.c
nfssvc.c NFSD: Decrease nfsd_users in nfsd_startup_generic fail 2014-08-01 16:26:09 -04:00
nfsxdr.c
state.h File locking related changes for v3.18 (pile #1) 2014-10-11 13:21:34 -04:00
stats.c
stats.h
vfs.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2014-10-12 10:13:55 -04:00
vfs.h
xdr3.h
xdr4.h NFSD: Implement SEEK 2014-09-29 14:35:20 -04:00
xdr4cb.h
xdr.h