freebsd-skq/sys
Jamie Gritton f7496dcab0 jail: Change the locking around pr_ref and pr_uref
Require both the prison mutex and allprison_lock when pr_ref or
pr_uref go to/from zero.  Adding a non-first or removing a non-last
reference remain lock-free.  This means that a shared hold on
allprison_lock is sufficient for prison_isalive() to be useful, which
removes a number of cases of lock/check/unlock on the prison mutex.

Expand the locking in kern_jail_set() to keep allprison_lock held
exclusive until the new prison is valid, thus making invalid prisons
invisible to any thread holding allprison_lock (except of course the
one creating or destroying the prison).  This renders prison_isvalid()
nearly redundant, now used only in asserts.

Differential Revision:	https://reviews.freebsd.org/D28419
Differential Revision:	https://reviews.freebsd.org/D28458
2021-02-21 10:55:44 -08:00
..
amd64 amd64: implement strlen in assembly, take 2 2021-02-21 00:43:05 +00:00
arm Remove __XSCALE__ checks from the arm code 2021-02-19 15:31:26 +00:00
arm64 arm64: Include NUMA locality info in the CPU topology 2021-02-18 10:51:38 -05:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam Microoptimize CTL I/O queues. 2021-02-19 15:49:36 -05:00
cddl Reimplement the arm64 dtrace_gethrtime(), which provides the 2021-02-19 09:00:39 +00:00
compat Use atomic loads/stores when updating td->td_state 2021-02-18 14:02:48 +00:00
conf Delete dead CLUSTERDEBUG config option. 2021-02-21 11:38:21 +02:00
contrib zfs: merge OpenZFS master-bf156c966 2021-02-18 15:19:35 +01:00
crypto OpenSSL: Regen assembly files for OpenSSL 1.1.1j 2021-02-17 00:35:11 -05:00
ddb Use atomic loads/stores when updating td->td_state 2021-02-18 14:02:48 +00:00
dev cxgbe(4): Use the correct filter width for T5+. 2021-02-19 14:23:58 -08:00
dts Remove DTS files for arm boards we don't support 2021-01-27 10:02:01 +00:00
fs ext2fs: clear write cluster tracking on truncation 2021-02-21 11:38:21 +02:00
gdb Use atomic loads/stores when updating td->td_state 2021-02-18 14:02:48 +00:00
geom opencrypto: Introduce crypto_dispatch_async() 2021-02-08 09:19:19 -05:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 Add a VA_IS_CLEANMAP() macro. 2021-02-17 16:32:11 -08:00
isa
kern jail: Change the locking around pr_ref and pr_uref 2021-02-21 10:55:44 -08: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 Add a VA_IS_CLEANMAP() macro. 2021-02-17 16:32:11 -08:00
modules Add an implementation of CHACHA20_POLY1305 to cryptosoft. 2021-02-18 09:26:23 -08:00
net Fix setting static entries for arp/ndp. 2021-02-20 18:26:35 +00:00
net80211
netgraph netgraph/ng_bridge: Add counters for the first link, too 2021-02-10 19:05:37 +01:00
netinet sctp: improve computation of an alternate net 2021-02-21 17:13:06 +01:00
netinet6 Remove per-packet ifa refcounting from IPv6 fast path. 2021-02-15 22:33:12 +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: Fix osfp configuration 2021-02-18 08:38:28 +01:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed kern: net: remove TCP_LINGERTIME 2021-02-18 22:36:01 -06:00
opencrypto cryptosoft: Support per-op keys for AES-GCM and AES-CCM. 2021-02-18 09:53:25 -08:00
powerpc Add a VA_IS_CLEANMAP() macro. 2021-02-17 16:32:11 -08:00
riscv Add a VA_IS_CLEANMAP() macro. 2021-02-17 16:32:11 -08:00
rpc nfs-over-tls: handle res.gid.gid_val correctly for memory allocation 2021-01-12 13:59:52 -08:00
security Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sys jail: Change the locking around pr_ref and pr_uref 2021-02-21 10:55:44 -08: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 vnode: move write cluster support data to inodes. 2021-02-21 11:38:21 +02:00
vm Use atomic loads/stores when updating td->td_state 2021-02-18 14:02:48 +00:00
x86 xen/boot: allow specifying boot method when booted from Xen 2021-02-16 15:26:11 +01:00
xdr
xen xen: remove .swp file from public headers 2021-01-11 18:14:11 +01:00
Makefile