freebsd-nq/sys/fs
Edward Tomasz Napierala 4ddb3cc597 devfs(4): defer freeing until we drop devmtx ("cdev")
Before r332974 the old code would sometimes cause a rare lock order
reversal against pagequeue, which looked roughly like this:

witness_checkorder()
__mtx_lock-flags()
vm_page_alloc()
uma_small_alloc()
keg_alloc_slab()
keg_fetch-slab()
zone_fetch-slab()
zone_import()
zone_alloc_bucket()
uma_zalloc_arg()
bucket_alloc()
uma_zfree_arg()
free()
devfs_metoo()
devfs_populate_loop()
devfs_populate()
devfs_rioctl()
VOP_IOCTL_APV()
VOP_IOCTL()
vn_ioctl()
fo_ioctl()
kern_ioctl()
sys_ioctl()

Since r332974 the original problem no longer exists, but it still
makes sense to move things out of the - often congested - lock.

Reviewed By:	kib, markj
Sponsored by:	NetApp, Inc.
Sponsored by:	Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D27334
2020-12-29 13:47:36 +00:00
..
autofs Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +00:00
cd9660 Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
cuse Fix for loading cuse.ko via rc.d . Make sure we declare the cuse(3) 2020-10-23 08:44:53 +00:00
deadfs cache: fix vexec panic when racing against vgone 2020-10-09 19:10:00 +00:00
devfs devfs(4): defer freeing until we drop devmtx ("cdev") 2020-12-29 13:47:36 +00:00
ext2fs In ext2fs, BA_CLRBUF is used in ext2_balloc() not UFS_BALLOC(). 2020-12-08 00:49:31 +00:00
fdescfs fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
fifofs fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
fuse fusefs: delete some dead code 2020-12-28 19:05:35 +00:00
mntfs Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
msdosfs msdosfs: Fix a leak of dirent padding bytes 2020-12-27 17:01:44 -05:00
nfs Add a new "tlscertname" NFS mount option. 2020-12-23 13:42:55 -08:00
nfsclient Add a new "tlscertname" NFS mount option. 2020-12-23 13:42:55 -08:00
nfsserver Bjorn reported a problem where the Linux NFSv4.1 client is 2020-09-26 23:05:38 +00:00
nullfs nullfs: provide custom bypass for VOP_READ_PGCACHE(). 2020-11-26 18:16:32 +00:00
procfs fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
pseudofs Add sbuf streaming mode to pseudofs(9), use in linprocfs(5) 2020-11-05 06:48:51 +00:00
smbfs vfs: drop the de facto curthread argument from VOP_INACTIVE 2020-10-20 07:19:03 +00:00
tmpfs tmpfs: reorder struct tmpfs_node to shrink it by 8 bytes 2020-11-05 11:24:45 +00:00
udf Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
unionfs Split out cwd/root/jail, cmask state from filedesc table 2020-11-17 21:14:13 +00:00