freebsd-nq/sys/fs/nfsserver
Rick Macklem a0962bf8bc When the nfsd threads are terminated, the NFSv4 server state
(opens, locks, etc) is retained, which I believe is correct behaviour.
However, for NFSv4.1, the server also retained a reference to the xprt
(RPC transport socket structure) for the backchannel. This caused
svcpool_destroy() to not call SVC_DESTROY() for the xprt and allowed
a socket upcall to occur after the mutexes in the svcpool were destroyed,
causing a crash.
This patch fixes the code so that the backchannel xprt structure is
dereferenced just before svcpool_destroy() is called, so the code
does do an SVC_DESTROY() on the xprt, which shuts down the socket upcall.

Tested by:	g_amanakis@yahoo.com
PR:		204340
MFC after:	2 weeks
2015-11-21 23:55:46 +00:00
..
nfs_fha_new.c Fix RPC server threads file handle affinity to work better with ZFS. 2013-12-23 08:43:16 +00:00
nfs_fha_new.h Revamp the old NFS server's File Handle Affinity (FHA) code so that 2013-04-17 21:00:22 +00:00
nfs_nfsdcache.c Merge the NFSv4.1 server code in projects/nfsv4.1-server over 2014-07-01 20:47:16 +00:00
nfs_nfsdkrpc.c When the nfsd threads are terminated, the NFSv4 server state 2015-11-21 23:55:46 +00:00
nfs_nfsdport.c Make the size of the hash tables used by the NFSv4 server tunable. 2015-05-27 22:00:05 +00:00
nfs_nfsdserv.c Make the size of the hash tables used by the NFSv4 server tunable. 2015-05-27 22:00:05 +00:00
nfs_nfsdsocket.c Make the NFS server use shared vnode locks for a few cases 2015-05-29 20:22:53 +00:00
nfs_nfsdstate.c When the nfsd threads are terminated, the NFSv4 server state 2015-11-21 23:55:46 +00:00
nfs_nfsdsubs.c Make the size of the hash tables used by the NFSv4 server tunable. 2015-05-27 22:00:05 +00:00