freebsd-dev/sys/fs/nfsclient
Rick Macklem eeb1f3ed51 Fix the NFSv4 client to safely find processes.
r340744 broke the NFSv4 client, because it replaced pfind_locked() with a
call to pfind(), since pfind() acquires the sx lock for the pid hash and
the NFSv4 already holds a mutex when it does the call.
The patch fixes the problem by recreating a pfind_any_locked() and adding the
functions pidhash_slockall() and pidhash_sunlockall to acquire/release
all of the pid hash locks.
These functions are then used by the NFSv4 client instead of acquiring
the allproc_lock and calling pfind().

Reviewed by:	kib, mjg
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D19887
2019-04-15 01:27:15 +00:00
..
nfs_clbio.c Allocate pager bufs from UMA instead of 80-ish mutex protected linked list. 2019-01-15 01:02:16 +00:00
nfs_clcomsubs.c
nfs_clkdtrace.c
nfs_clkrpc.c
nfs_clnfsiod.c
nfs_clnode.c
nfs_clport.c Fix the NFSv4 client to safely find processes. 2019-04-15 01:27:15 +00:00
nfs_clrpcops.c Drop unused 'p' argument to nfsv4_strtogid(). 2019-03-12 15:07:47 +00:00
nfs_clstate.c Fix the NFSv4 client to safely find processes. 2019-04-15 01:27:15 +00:00
nfs_clsubs.c
nfs_clvfsops.c Use declared types for caddr_t arguments. 2018-11-06 18:46:38 +00:00
nfs_clvnops.c Add _PC_ACL_* to vop_stdpathconf 2019-03-11 20:40:56 +00:00
nfs_kdtrace.h
nfs.h
nfsmount.h
nfsnode.h
nlminfo.h