freebsd-nq/sys/fs/nfsserver
Rick Macklem 52f1bb38c2 A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1
was reported via email. This was caused by a LOR between the
sleep lock used to serialize the local locking (nfsrv_locklf())
and locking the vnode. I believe this patch fixes the problem
by delaying relocking of the vnode until the sleep lock is
unlocked (nfsrv_unlocklf()). To avoid nfsvno_advlock() having the side
effect of unlocking the vnode, unlocking the vnode was moved to before
the functions that call nfsvno_advlock().
It shouldn't affect the execution of the default case where
vfs.nfsd.enable_locallocks=0.

Reported by:	loic.blot@unix-experience.fr
Discussed with:	kib
MFC after:	1 week
2014-12-25 01:55:17 +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 Allow the vfs.nfsd knobs to be set from loader.conf (or using 2014-10-27 07:47:13 +00:00
nfs_nfsdport.c A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1 2014-12-25 01:55:17 +00:00
nfs_nfsdserv.c The VOP_LOOKUP() implementations for CREATE op do not put the name 2014-12-18 10:01:12 +00:00
nfs_nfsdsocket.c Change the NFS server's printf related to hitting 2014-08-10 01:13:32 +00:00
nfs_nfsdstate.c A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1 2014-12-25 01:55:17 +00:00
nfs_nfsdsubs.c Make the sysctl(8) for checkutf8 positively defined and improve 2014-10-17 02:11:09 +00:00