WSL2-Linux-Kernel/fs/nfs
Andy Adamson ea028ac925 nfs41: nfs41: fix state manager deadlock in session reset
If the session is reset during state recovery, the state manager thread can
sleep on the slot_tbl_waitq causing a deadlock.

Add a completion framework to the session.  Have the state manager thread set
a new session state (NFS4CLNT_SESSION_DRAINING) and wait for the session slot
table to drain.

Signal the state manager thread in nfs41_sequence_free_slot when the
NFS4CLNT_SESSION_DRAINING bit is set and the session is drained.

Reported-by: Trond Myklebust <trond@netapp.com>
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-12-04 15:55:38 -05:00
..
Kconfig Merge branch 'for-2.6.31' of git://fieldses.org/git/linux-nfsd 2009-06-22 12:55:50 -07:00
Makefile NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
cache_lib.c NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
cache_lib.h NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
callback.c The rpc server does not require that service threads take the BKL. 2009-12-03 15:58:33 -05:00
callback.h nfs41: Backchannel: update cb_sequence args and results 2009-06-17 14:11:40 -07:00
callback_proc.c nfs41: Backchannel: CB_SEQUENCE validation 2009-06-17 14:11:43 -07:00
callback_xdr.c trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
client.c nfs: Avoid overrun when copying client IP address string 2009-10-06 15:42:18 -04:00
delegation.c NFSv4: Fix a potential state manager deadlock when returning delegations 2009-12-03 08:10:17 -05:00
delegation.h NFSv4: Fix a potential state manager deadlock when returning delegations 2009-12-03 08:10:17 -05:00
dir.c nfs: clean up sillyrenaming in nfs_rename() 2009-12-03 15:58:56 -05:00
direct.c nfs: Panic when commit fails 2009-10-23 14:16:30 -04:00
dns_resolve.c NFSv4: Ensure nfs_dns_lookup() and nfs_dns_update() are declared static 2009-12-03 15:54:01 -05:00
dns_resolve.h NFS: Add a dns resolver for use with NFSv4 referrals and migration 2009-08-19 18:22:15 -04:00
file.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
fscache-index.c NFS: Add read context retention for FS-Cache to call back with 2009-04-03 16:42:44 +01:00
fscache.c FS-Cache: Handle pages pending storage that get evicted under OOM conditions 2009-11-19 18:11:35 +00:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c headers: mnt_namespace.h redux 2009-07-08 09:31:56 -07:00
idmap.c SUNRPC: Replace rpc_client->cl_dentry and cl_mnt, with a cl_path 2009-08-09 15:14:24 -04:00
inode.c truncate: use new helpers 2009-09-24 08:41:47 -04:00
internal.h nfs41: call free slot from nfs4_restart_rpc 2009-12-04 15:55:29 -05:00
iostat.h remove put_cpu_no_resched() 2009-06-16 19:47:48 -07:00
mount_clnt.c Merge branch 'patches_cel-for-2.6.32' into nfs-for-2.6.32 2009-08-10 17:45:50 -04:00
namespace.c NFS: Fix nfs_path() to always return a '/' at the beginning of the path 2009-06-22 21:28:25 -07:00
nfs2xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs3acl.c nfs: remove unnecessary NFS_INO_INVALID_ACL checks 2009-06-17 18:02:14 -07:00
nfs3proc.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs3xdr.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
nfs4_fs.h nfs41: nfs41: fix state manager deadlock in session reset 2009-12-04 15:55:38 -05:00
nfs4namespace.c NFSv4: Fix the referral mount code 2009-10-06 15:42:20 -04:00
nfs4proc.c nfs41: nfs41: fix state manager deadlock in session reset 2009-12-04 15:55:38 -05:00
nfs4renewd.c NFSv4: Kill nfs4_renewd_prepare_shutdown() 2009-10-08 11:50:55 -04:00
nfs4state.c nfs41: nfs41: fix state manager deadlock in session reset 2009-12-04 15:55:38 -05:00
nfs4xdr.c Re: acl trouble after upgrading ubuntu 2009-12-03 08:10:17 -05:00
nfsroot.c NFS: Update MNT and MNT3 reply decoding functions 2009-06-17 18:02:13 -07:00
pagelist.c NFS: Throttle page dirtying while we're flushing to disk 2009-03-11 14:10:30 -04:00
proc.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
read.c nfs41: call free slot from nfs4_restart_rpc 2009-12-04 15:55:29 -05:00
super.c NFS: Revert default r/wsize behavior 2009-12-03 15:58:56 -05:00
symlink.c nfs: remove unnecessary NFS_NEED_* defines 2008-04-23 16:13:37 -04:00
sysctl.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00
unlink.c nfs41: call free slot from nfs4_restart_rpc 2009-12-04 15:55:29 -05:00
write.c nfs41: call free slot from nfs4_restart_rpc 2009-12-04 15:55:29 -05:00