freebsd-dev/sys
Rick Macklem 82ee386c2a nfsv4 client: fix forced dismount when sleeping in the renew thread
During a recent NFSv4 testing event a test server caused a hang
where "umount -N" failed.  The renew thread was sleeping on "nfsv4lck"
and the "umount" was sleeping, waiting for the renew thread to
terminate.

This is the second of two patches that is hoped to fix the renew thread
so that it will terminate when "umount -N" is done on the mount.

This patch adds a 5second timeout on the msleep()s and checks for
the forced dismount flag so that the renew thread will
wake up and see the forced dismount flag.  Normally a wakeup()
will occur in less than 5seconds, but if a premature return from
msleep() does occur, it will simply loop around and msleep() again.
The patch also adds the "mp" argument to nfsv4_lock() so that it
will return when the forced dismount flag is set.

While here, replace the nfsmsleep() wrapper that was used for portability
with the actual msleep() call.

MFC after:	2 weeks
2021-03-23 13:04:37 -07:00
..
amd64 bhyve amd: Small cleanups in amdvi_dump_cmds 2021-03-23 16:12:41 +08:00
arm Remove PCPU_INC 2021-03-20 19:23:59 -07:00
arm64 Replace the arm64 initial_fpcr with a macro 2021-03-23 17:12:43 +00:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam cam: Run all XPT_ASYNC ccbs in a dedicated thread 2021-03-12 13:29:42 -07:00
cddl Teach DTrace that unaligned accesses are OK on aarch64, not just x86. 2021-03-22 23:57:19 +00:00
compat Rename linux_set_upcall_kse() to linux_set_upcall(). 2021-03-18 12:14:34 -07:00
conf arm64: Check dtb version against the one we're expecting to find 2021-03-23 15:24:53 +01:00
contrib Update DTS files from Linux v5.10 2021-03-23 15:00:35 +01:00
crypto armv8crypto: note derivation in armv8_crypto_wrap.c 2021-03-19 10:53:49 -03:00
ddb ddb: enable the use of ^C and ^S/^Q 2021-03-14 16:04:27 -07:00
dev gpioc_detach: fix freeing of wrong pointers 2021-03-23 12:45:18 +02:00
dts dts: Bump the freebsd branding version to 5.10 2021-03-23 15:02:21 +01:00
fs nfsv4 client: fix forced dismount when sleeping in the renew thread 2021-03-23 13:04:37 -07:00
gdb Use atomic loads/stores when updating td->td_state 2021-02-18 14:02:48 +00:00
geom gmirror: Pre-allocate the timeout event structure 2021-03-11 15:45:15 -05:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 Remove PCPU_INC 2021-03-20 19:23:59 -07:00
isa Move back the isa non-PNP driver deadline to FreeBSD 14. 2021-03-08 16:00:23 -07:00
kern Generalize bus_space(9) and atomic(9) sanitizer interceptors 2021-03-22 22:21:53 -04:00
kgssapi opencrypto: Introduce crypto_dispatch_async() 2021-02-08 09:19:19 -05:00
libkern Restore the augmented strlen commentary 2021-02-08 19:15:21 +00:00
mips Remove PCPU_INC 2021-03-20 19:23:59 -07:00
modules AMD-vi: Fix IOMMU device interrupts being overridden 2021-03-22 17:33:43 +08:00
net Add device and ifnet logging methods, similar to device_printf / if_printf 2021-03-22 00:02:34 +00:00
net80211 net80211: split up ieee80211_probereq() 2021-03-18 11:02:45 +00:00
netgraph netgraph/ng_bridge: Add counters for the first link, too 2021-02-10 19:05:37 +01:00
netinet sctp: fix handling of RTO.initial of 1 ms 2021-03-22 16:44:18 +01:00
netinet6 base: remove if_wg(4) and associated utilities, manpage 2021-03-17 09:14:48 -05:00
netipsec Revert "SO_RERROR indicates that receive buffer overflows should be handled as errors." 2021-02-08 22:32:32 +00:00
netpfil dummynet: Move timekeeping information into dn_cfg 2021-03-23 18:01:58 +01:00
netsmb
nfs nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed ofed: quiet gcc -Wint-in-bool-context 2021-02-24 15:56:16 -08:00
opencrypto ktls: Fix non-inplace TLS 1.3 encryption. 2021-03-10 11:07:40 -08:00
powerpc Remove PCPU_INC 2021-03-20 19:23:59 -07:00
riscv Remove PCPU_INC 2021-03-20 19:23:59 -07:00
rpc nfs-over-tls: handle res.gid.gid_val correctly for memory allocation 2021-01-12 13:59:52 -08:00
security Add a comment on why the call to mac_vnode_relabel() might be in the wrong 2021-02-27 16:25:26 +00:00
sys Generalize bus_space(9) and atomic(9) sanitizer interceptors 2021-03-22 22:21:53 -04:00
teken loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
tests Enable running fib tests inside vnet jail. 2021-01-17 20:32:26 +00:00
tools syscalls.master: Add a new syscall type: RESERVED 2021-01-26 18:27:44 +00:00
ufs softdep_unmount: assert that no dandling dependencies are left 2021-03-12 13:31:08 +02:00
vm Remove unused obj variable missed in r354870. 2021-03-17 15:29:15 -07:00
x86 Generalize bus_space(9) and atomic(9) sanitizer interceptors 2021-03-22 22:21:53 -04:00
xdr
xen xen: move x86-specific xen_vector_callback_enabled to sys/x86 2021-03-15 14:20:21 +01:00
Makefile