freebsd-skq/sys
Konstantin Belousov 0ff51c98d1 Fix NFS client deadlock when read reports truncated node.
If node attribute returned in the reply for read rpc indicate
truncation, and it happens that the vnode is exclusively locked,
update of the node attributes would try to shrink vnode size.  Since
during the read some vnode pages were busied by the reading thread,
vnode_pager_setsize() deadlocks waiting for the busy state owned by
the caller.

Use a thread-local flag to indicate that NFS read owns some (s)busy
pages states and postpone the call to vnode_pager_setsize() until the
thread relinguishes the ownership.

Diagnosed by:	rlibby
Tested by:	pho, rlibby
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2020-02-22 20:50:30 +00:00
..
amd64 amd64: keep PTE bitmasks in sync with target pmap during pv reclaim 2020-02-18 00:02:20 +00:00
arm Fix the following -Werror warning from clang 10.0.0: 2020-02-18 17:55:24 +00:00
arm64 arm64: remove no longer needed atomic_load_ptr casts 2020-02-14 23:17:18 +00:00
bsm vfs: add realpathat syscall 2020-02-20 16:58:19 +00:00
cam We pass a pointer to the flags to dabitsysctl, not an integer. Adjust the 2020-02-21 22:44:22 +00:00
cddl Remove duplicate dbufs accounting. 2020-02-07 15:50:47 +00:00
compat linuxkpi: Move shmem related functions in it's own file 2020-02-21 09:28:45 +00:00
conf riscv: Set MACHINE_ARCH correctly 2020-02-22 13:23:27 +00:00
contrib Add chacha20poly1305 support to crypto build 2020-02-16 00:03:09 +00:00
crypto
ddb Add KERNEL_PANICKED macro for use in place of direct panicstr tests 2020-01-12 06:07:54 +00:00
dev Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) 2020-02-21 16:32:17 +00:00
dts Add an overlay for RK3328 USB3 node. 2020-01-29 12:10:42 +00:00
fs Fix NFS client deadlock when read reports truncated node. 2020-02-22 20:50:30 +00:00
gdb Add KERNEL_PANICKED macro for use in place of direct panicstr tests 2020-01-12 06:07:54 +00:00
geom geli taste: allow GELIBOOT tagged providers as well 2020-02-07 21:36:14 +00:00
gnu Import DTS files for riscv from Linux 5.4 2019-12-03 09:12:53 +00:00
i386 i386: remove no longer needed atomic_load_ptr casts 2020-02-14 23:17:37 +00:00
isa sc(4) md bits: stop setting sc->kbd entirely 2019-12-30 02:07:55 +00:00
kern Add td_pflags2, yet another thread-private flags word. 2020-02-22 20:43:04 +00:00
kgssapi
libkern random(9): Deprecate random(9), remove meaningless srandom(9) 2019-12-26 19:41:09 +00:00
mips mips: fix kernel build after r357804 2020-02-14 20:25:04 +00:00
modules linuxkpi: Move shmem related functions in it's own file 2020-02-21 09:28:45 +00:00
net Partially revert VNET change and expand VNET structure. 2020-02-17 11:08:50 +00:00
net80211 Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) 2020-02-21 16:32:17 +00:00
netgraph Rework second part of r357558. Unroll the macro and allocate memory in 2020-02-21 04:18:15 +00:00
netinet Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (6 of many) 2020-02-21 16:23:00 +00:00
netinet6 ip6_output: improve extension header handling 2020-02-20 10:56:12 +00:00
netipsec netipsec: fix a mismatched uma_zfree -> uma_zfree_pcpu 2020-02-12 20:18:29 +00:00
netpfil Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (6 of many) 2020-02-21 16:23:00 +00:00
netsmb
nfs vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
nfsclient
nfsserver
nlm vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
ofed Make sure the VNET is properly set when reaping mbufs in ipoib. 2020-01-11 12:02:16 +00:00
opencrypto Miscellaneous typo fixes 2020-02-07 19:53:07 +00:00
powerpc powerpc/booke: Fix handling of pvh_global_lock and pmap lock 2020-02-22 01:31:06 +00:00
riscv riscv: Set MACHINE_ARCH correctly 2020-02-22 13:23:27 +00:00
rpc Change r355157 to make svc_rpc_gss_lifetime_max a static. 2019-11-28 02:18:51 +00:00
security audit: provide audit_canon_path variant which accepts vnodes 2020-02-21 01:40:49 +00:00
sys Fix NFS client deadlock when read reports truncated node. 2020-02-22 20:50:30 +00:00
teken
tests
tools vfs: stop null checking routines in vop wrappers 2020-01-26 00:41:38 +00:00
ufs Additional KASSERTs to ensure the consistency of the soft updates 2020-02-18 23:56:23 +00:00
vm Constify uma_zcache_create() and uma_zsecond_create()'s "name" argument. 2020-02-22 17:44:28 +00:00
x86 x86/identcpu.c whitespace cleanup. 2020-02-21 16:55:28 +00:00
xdr typo: s/impelmentation/implementation/. 2020-02-07 15:14:29 +00:00
xen
Makefile Remove sparc64 kernel support 2020-02-03 17:35:11 +00:00