freebsd-dev/sys
Konstantin Belousov 16dea83410 null_vput_pair(): release use reference on dvp earlier
We might own the last use reference, and then vrele() at the end would
need to take the dvp vnode lock to inactivate, which causes deadlock
with vp. We cannot vrele() dvp from start since this might unlock ldvp.

Handle it by holding the vnode and dropping use ref after lowerfs
VOP_VPUT_PAIR() ended.  This effectivaly requires unlock of the vp vnode
after VOP_VPUT_PAIR(), so the call is changed to set unlock_vp to true
unconditionally.  This opens more opportunities for vp to be reclaimed,
if lvp is still alive we reinstantiate vp with null_nodeget().

Reported and tested by:	pho
Reviewed by:	mckusick
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D29178
2021-03-12 13:31:08 +02:00
..
amd64 amd64 pmap: convert to counter(9), add PV and pagetable page counts 2021-03-09 09:27:10 -08:00
arm mvebu_gpio: Fix settings of gpio pin direction. 2021-03-07 11:41:30 +01:00
arm64 arm64: Fix COMPAT_FREEBSD32. 2021-03-10 19:06:42 +01:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam Do not exit ctl_be_block_worker() prematurely. 2021-03-05 22:45:47 -05:00
cddl Handle functions that use a nop in the arm64 fbt 2021-03-03 14:18:03 +00:00
compat linsysfs: create /sys/bus/ and /sys/subsystem/ 2021-03-11 15:50:51 +00:00
conf kern.mk: fix -Wno-error style to fix build with Clang 12 2021-03-10 17:34:35 -05:00
contrib Fix dpdk/ldradix fib lookup algorithm preference calculation. 2021-03-07 22:17:53 +00:00
crypto armv8crypto: fix AES-XTS regression introduced by ed9b7f44 2021-03-07 12:03:47 -08:00
ddb ddb: just move cursor when the lexer backs up 2021-02-24 15:56:16 -08:00
dev Hyper-V: hn: Enable vSwitch RSC support in hn netvsc driver 2021-03-12 04:35:16 +00:00
dts Remove DTS files for arm boards we don't support 2021-01-27 10:02:01 +00:00
fs null_vput_pair(): release use reference on dvp earlier 2021-03-12 13:31:08 +02: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 acpi: Make nexus_acpi quiet on amd64 and i386 2021-03-05 12:54:00 -05:00
isa Move back the isa non-PNP driver deadline to FreeBSD 14. 2021-03-08 16:00:23 -07:00
kern vlrureclaim: only skip vnode with resident pages if it own the pages 2021-03-12 13:31:08 +02: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 [ar71xx] Fix routerstation / routerstation pro redboot FIS probing 2021-02-25 13:14:55 -08:00
modules Implement basic support for allocating memory from a specific numa node 2021-03-09 21:01:47 +01:00
net Hyper-V: hn: Enable vSwitch RSC support in hn netvsc driver 2021-03-12 04:35:16 +00:00
net80211 net80211: ratectl header guard against multiple inclusions 2021-03-07 17:35:58 +00:00
netgraph netgraph/ng_bridge: Add counters for the first link, too 2021-02-10 19:05:37 +01:00
netinet Flush remaining routes from the routing table during VNET shutdown. 2021-03-10 21:10:14 +00:00
netinet6 Flush remaining routes from the routing table during VNET shutdown. 2021-03-10 21:10:14 +00:00
netipsec Revert "SO_RERROR indicates that receive buffer overflows should be handled as errors." 2021-02-08 22:32:32 +00:00
netpfil pf: Remove redundant kif != NULL checks 2021-03-11 10:39:43 +01:00
netsmb
nfs
nfsclient
nfsserver nfs: Mark unused statistics variable as reserved 2020-11-18 04:35:49 +00: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 SPDX: Spell 4 clause BSD license correctly 2021-03-11 14:17:54 -07:00
riscv riscv: fix errors in some atomic type aliases 2021-03-04 16:59:58 -04: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 config_intrhook: provide config_intrhook_drain 2021-03-11 09:45:10 -07: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 vm_reserv: Fix list locking in vm_reserv_reclaim_contig() 2021-03-11 10:35:35 -05:00
x86 x86: tsc: deprioritize TSC on VirtualBox 2021-03-08 14:43:06 -06:00
xdr
xen xen: remove .swp file from public headers 2021-01-11 18:14:11 +01:00
Makefile