WSL2-Linux-Kernel/fs/nfsd
NeilBrown 82e12fe924 nfsd: don't take nfsd_mutex twice when setting number of threads.
Currently when we write a number to 'threads' in nfsdfs,
we take the nfsd_mutex, update the number of threads, then take the
mutex again to read the number of threads.

Mostly this isn't a big deal.  However if we are write '0', and
portmap happens to be dead, then we can get unpredictable behaviour.
If the nfsd threads all got killed quickly and the last thread is
waiting for portmap to respond, then the second time we take the mutex
we will block waiting for the last thread.
However if the nfsd threads didn't die quite that fast, then there
will be no contention when we try to take the mutex again.

Unpredictability isn't fun, and waiting for the last thread to exit is
pointless, so avoid taking the lock twice.
To achieve this, get nfsd_svc return a non-negative number of active
threads when not returning a negative error.

Signed-off-by: NeilBrown <neilb@suse.de>
2009-06-18 09:40:31 -07:00
..
Kconfig nfsd : Define NFSD only when FILE_LOCKING is enabled 2009-03-18 17:30:48 -04:00
Makefile knfsd: trivial makefile cleanup 2007-05-09 12:30:54 -07:00
auth.c nfsd: fix cred leak on every rpc 2009-01-27 17:26:59 -05:00
auth.h nfsd: minor fs/nfsd/auth.h cleanup 2008-02-01 16:42:05 -05:00
export.c rpcgss: remove redundant test on unsigned 2009-04-23 17:25:07 -04:00
lockd.c nfsd: common grace period control 2008-10-03 16:19:02 -04:00
nfs2acl.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfs3acl.c nfsd: rename MAY_ flags 2008-06-23 13:02:50 -04:00
nfs3proc.c NFS: kill off complicated macro 'PROC' 2009-06-15 19:34:32 -07:00
nfs3xdr.c nfsd: support ext4 i_version 2009-04-29 11:35:49 -04:00
nfs4acl.c nfsd: fix buffer overrun decoding NFSv4 acl 2008-09-01 14:24:24 -04:00
nfs4callback.c nfsd4: make recall callback an asynchronous rpc 2009-05-03 15:08:56 -04:00
nfs4idmap.c nfsd: fix sparse warnings 2008-04-23 16:13:39 -04:00
nfs4proc.c NFSv4: kill off complicated macro 'PROC' 2009-06-01 18:09:20 -04:00
nfs4recover.c nfsd: silence lockdep warning 2009-05-11 17:23:14 -04:00
nfs4state.c nfsd41: sanity check client drc maxreqs 2009-06-16 17:13:16 -07:00
nfs4xdr.c nfsd41: move channel attributes from nfsd4_session to a nfsd4_channel_attr struct 2009-06-16 10:13:45 -07:00
nfscache.c knfsd: fix reply cache memory corruption 2009-05-27 14:14:02 -04:00
nfsctl.c nfsd: don't take nfsd_mutex twice when setting number of threads. 2009-06-18 09:40:31 -07:00
nfsfh.c knfsd: remove unreported filehandle stats counters 2009-05-27 14:14:03 -04:00
nfsproc.c NFS: kill off complicated macro 'PROC' 2009-06-15 19:34:32 -07:00
nfssvc.c nfsd: don't take nfsd_mutex twice when setting number of threads. 2009-06-18 09:40:31 -07:00
nfsxdr.c Use struct path in struct svc_export 2008-02-14 21:17:08 -08:00
stats.c [PATCH] knfsd: nfsd4: add per-operation server stats 2006-07-10 13:24:27 -07:00
vfs.c nfsd: minor nfsd_vfs_write cleanup 2009-06-15 19:18:34 -07:00