opnsense-src/sys/fs
Rick Macklem 00595201ad nfscl: Fix another deadlock related to the NFSv4 clientID lock
Without this patch, it is possible to hang the NFSv4 client,
when a rename/remove is being done on a file where the client
holds a delegation, if pNFS is being used.  For a delegation
to be returned, dirty data blocks must be flushed to the NFSv4
server.  When pNFS is in use, a shared lock on the clientID
must be acquired while doing a write to the DS(s).
However, if rename/remove is doing the delegation return
an exclusive lock will be acquired on the clientID, preventing
the write to the DS(s) from acquiring a shared lock on the clientID.

This patch stops rename/remove from doing a delegation return
if pNFS is enabled.  Since doing delegation return in the same
compound as rename/remove is only an optimization, not doing
so should not cause problems.

This problem was detected during a recent NFSv4 interoperability
testing event held by the IETF working group.

(cherry picked from commit b82168e657)
2021-10-19 18:40:27 -07:00
..
autofs Ensure that dirent's d_off field is initialized 2021-01-03 11:50:31 -05:00
cd9660 buffer pager: allow get_blksize method to return error 2021-09-24 03:26:59 +03:00
cuse Fix for loading cuse.ko via rc.d . Make sure we declare the cuse(3) 2020-10-23 08:44:53 +00:00
deadfs vn_open(): If the vnode is reclaimed during open(2), do not return error. 2021-02-24 09:42:42 +02:00
devfs devfs: fix use count leak when using TIOCSCTTY 2021-04-10 05:57:55 +00:00
ext2fs vfs: remove dead fifoop VOP_KQFILTER implementations 2021-10-08 19:56:46 -05:00
fdescfs fdescfs: add an option to return underlying file vnode on lookup 2021-06-11 03:33:48 +03:00
fifofs fifo: support flock 2021-10-11 09:12:48 +00:00
fuse fusefs: don't panic if FUSE_GETATTR fails durint VOP_GETPAGES 2021-10-07 15:43:45 -06:00
mntfs Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
msdosfs buffer pager: allow get_blksize method to return error 2021-09-24 03:26:59 +03:00
nfs nfscl: Fix a deadlock related to the NFSv4 clientID lock 2021-10-19 18:36:56 -07:00
nfsclient nfscl: Fix another deadlock related to the NFSv4 clientID lock 2021-10-19 18:40:27 -07:00
nfsserver Allow setting NFS server scope and owner. 2021-09-27 20:33:57 -04:00
nullfs null_vput_pair(): release use reference on dvp earlier 2021-08-14 13:21:59 +03:00
procfs procfs_map: switch to use vm_object_kvme_type 2021-05-22 12:38:30 +03:00
pseudofs pseudofs: use vget_prep + vget_finish instead of vget + the interlock 2021-05-22 18:22:35 +00:00
smbfs Ensure that dirent's d_off field is initialized 2021-01-03 11:50:31 -05:00
tmpfs tmpfs: Move partial page invalidation to a separate helper 2021-09-04 01:21:10 +08:00
udf Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
unionfs unionfs: do not use bare struct componentname 2021-07-07 13:23:30 +03:00