freebsd-dev/sys/fs
Jason A. Harmening 39a2dc44f8 unionfs: allow vnode lock to be held shared during VOP_OPEN
do_execve() will hold the vnode lock shared when it calls VOP_OPEN(),
but unionfs_open() requires the lock to be held exclusive to
correctly synchronize node status updates.  This requirement is
asserted in unionfs_get_node_status().

Change unionfs_open() to temporarily upgrade the lock as is already
done in unionfs_close().  Related to this, fix various cases throughout
unionfs in which vnodes are not checked for reclamation following lock
upgrades that may have temporarily dropped the lock.  Also fix another
related issue in which unionfs_lock() can incorrectly add LK_NOWAIT
during a downgrade operation, which trips a lockmgr assertion.

Reviewed by:	kib (prior version), markj, pho
Reported by:	pho
Differential Revision: https://reviews.freebsd.org/D33729
2022-01-11 18:44:03 -08:00
..
autofs vfs: remove cn_thread 2021-10-11 13:21:47 +00:00
cd9660 Change VOP_READDIR's cookies argument to a **uint64_t 2021-12-15 20:54:57 -07: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 vn_open(): If the vnode is reclaimed during open(2), do not return error. 2021-02-12 03:02:20 +02:00
devfs vfs: add vop_stdadd_writecount_nomsync 2021-11-26 12:06:08 +00:00
ext2fs Improve extents verification logic 2021-12-30 09:14:45 +03:00
fdescfs fdescfs: plug a set-but-not-unused var 2021-11-24 21:25:24 +00:00
fifofs fifos: delegate unhandled kqueue filters to underlying filesystem 2021-10-12 02:43:07 -05:00
fuse fusefs: implement VOP_ALLOCATE 2021-12-31 21:05:28 -07:00
mntfs mntfs: lock mntfs pseudo devfs vnode properly 2021-11-13 01:00:41 +02:00
msdosfs msdosfs: use mntfs vnode for pm_devvp 2022-01-08 06:21:58 +02:00
nfs nfsd: Do not accept audit/alarm ACEs for the NFSv4 server 2022-01-11 09:40:07 -08:00
nfsclient nfsd: Do not accept audit/alarm ACEs for the NFSv4 server 2022-01-11 09:40:07 -08:00
nfsserver nfsd: Do not accept audit/alarm ACEs for the NFSv4 server 2022-01-11 09:40:07 -08:00
nullfs vfs: remove the unused thread argument from NDINIT* 2021-11-25 22:50:42 +00:00
procfs procfs_doprocfile(): simplify 2021-11-04 06:13:47 +02:00
pseudofs pseudofs: Destroy vncache hashtbl on pseudofs module unload. 2021-12-09 21:41:08 +00:00
smbfs Change VOP_READDIR's cookies argument to a **uint64_t 2021-12-15 20:54:57 -07:00
tmpfs Change VOP_READDIR's cookies argument to a **uint64_t 2021-12-15 20:54:57 -07:00
udf Change VOP_READDIR's cookies argument to a **uint64_t 2021-12-15 20:54:57 -07:00
unionfs unionfs: allow vnode lock to be held shared during VOP_OPEN 2022-01-11 18:44:03 -08:00