freebsd-nq/sys
Rick Macklem b82168e657 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.

MFC after:	1 week
2021-10-12 17:21:01 -07:00
..
amd64 Enable PPS_SYNC on amd64, arm64 and armv7 2021-10-10 22:34:40 +03:00
arm Enable PPS_SYNC on amd64, arm64 and armv7 2021-10-10 22:34:40 +03:00
arm64 Stop reading the arm64 domain when it's known 2021-10-12 13:16:00 +01:00
bsm
cam cam(4): Limit search for disks in SES enclosure by single bus 2021-10-05 15:01:16 -04:00
cddl Allow ddb and dtrace use the DMAP region on arm64 2021-10-01 11:27:33 +01:00
compat vfs: remove thread argument from VOP_STAT 2021-10-11 13:22:32 +00:00
conf Restore PPS_SYNC in NOTES 2021-10-12 23:10:35 +03:00
contrib vfs: remove thread argument from VOP_STAT 2021-10-11 13:22:32 +00:00
crypto crypto: Support Chacha20-Poly1305 with a nonce size of 8 bytes. 2021-10-06 14:08:49 -07:00
ddb Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dev nvme: Restore hotplug warning 2021-10-12 14:26:54 -06:00
dts
fs nfscl: Fix another deadlock related to the NFSv4 clientID lock 2021-10-12 17:21:01 -07:00
gdb
geom geom_label: Add more validation for NTFS volume tasting 2021-10-04 18:15:06 -04:00
gnu
i386 i386: move signal delivery code to exec_machdep.c 2021-10-08 03:20:42 +03:00
isa
kern Stop creating socket aio kprocs during boot. 2021-10-12 14:03:07 -07:00
kgssapi
libkern libkern: remove bcopy 2021-08-24 11:24:07 +00:00
mips minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
modules modules: felix: Remove etherswitch_if.c from Makefile 2021-10-01 11:24:08 +02:00
net routing: Use the same index space for both nexthop and nexthop groups. 2021-10-08 07:58:55 +00:00
net80211 net80211: fix build for 526370fb85 2021-10-08 11:21:44 +00:00
netgraph bluetooth: complete removal of ng_h4 2021-09-29 20:00:02 -06:00
netinet [fib_algo][dxr] Retire counters which are no longer used 2021-10-09 13:47:10 +02:00
netinet6 sctp: Tighten up locking around sctp_aloc_assoc() 2021-09-11 10:15:21 -04:00
netipsec ipsec: fix typo part2 2021-09-27 07:46:56 +02:00
netpfil pf: do not copy anchor_wildcard / anchor_relative from userspace 2021-10-08 14:46:59 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto stand: fix build after recent opencrypto changes 2021-10-06 20:23:44 -05:00
powerpc Restore PPS_SYNC in NOTES 2021-10-12 23:10:35 +03:00
riscv Restore PPS_SYNC in NOTES 2021-10-12 23:10:35 +03:00
rpc rpc: Convert an SOLISTENING check to an assertion 2021-09-17 14:19:05 -04:00
security
sys sysctl.h: Less namespace pollution 2021-10-11 11:20:07 -06:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools makesyscalls: sprinkle some assert() on standard function calls 2021-09-24 20:55:56 -05:00
ufs vfs: remove cn_thread 2021-10-11 13:21:47 +00:00
vm forward declare struct thread 2021-10-11 12:59:39 -06:00
x86 apic: initialize lapic_paddr statically 2021-10-06 05:52:56 +03:00
xdr
xen
Makefile