freebsd-dev/sys/fs
Jason A. Harmening 93fe61afde unionfs_mkdir(): handle dvp reclamation
The underlying VOP_MKDIR() implementation may temporarily drop the
parent directory vnode's lock.  If the vnode is reclaimed during that
window, the unionfs vnode will effectively become unlocked because
the its v_vnlock field will be reset.  To uphold the locking
requirements of VOP_MKDIR() and to avoid triggering various VFS
assertions, explicitly re-lock the unionfs vnode before returning
in this case.

Note that there are almost certainly other cases in which we'll
similarly need to handle vnode relocking by the underlying FS; this
is the only one that's caused problems in stress testing so far.
A more general solution, such as that employed for nullfs in
null_bypass(), will likely need to be implemented.

Tested by:	pho
Reviewed by:	kib, markj
Differential Revision: https://reviews.freebsd.org/D39272
2023-04-17 20:31:40 -05:00
..
autofs vfs: add the concept of vnode state transitions 2022-12-26 17:35:12 +00:00
cd9660 fs/cd9660: add header include guards 2023-03-30 19:20:54 -04:00
cuse cuse(3): Cosmetic change about testing boolean values. 2022-10-04 13:51:06 +02:00
deadfs deadfs: consistently return EOPNOTSUPP for fplookup vops 2023-04-06 15:20:41 +00:00
devfs vfs: add the concept of vnode state transitions 2022-12-26 17:35:12 +00:00
ext2fs Fix compilation issue, when DTRACE is not defined 2023-03-20 23:06:57 +03:00
fdescfs fdesc_lookup(): drop fdropped 2023-03-24 19:47:22 +02:00
fifofs fifofs: ansify 2023-02-07 23:18:51 +00:00
fuse fuse: Remove set but unused cr_gid variable. 2023-03-31 10:57:13 -07:00
mntfs vfs: add the concept of vnode state transitions 2022-12-26 17:35:12 +00:00
msdosfs fs/msdosfs: add tracking of free root directory entries 2023-03-29 08:46:01 +02:00
nfs nfscl: Fix support for doing Null RPCs 2023-04-07 12:57:26 -07:00
nfsclient nfscl: Make coverity happy 2023-03-28 17:08:45 -07:00
nfsserver nfsd: Add support for the SP4_MACH_CRED case in ExchangeID 2023-04-07 12:49:23 -07:00
nullfs nullfs: ansify 2023-02-07 23:22:27 +00:00
procfs procfs: Sync a documentation comment with the code. 2023-04-10 17:58:46 +00:00
pseudofs pseudofs: Simplify pfs_visible_proc 2023-04-02 11:24:10 +03:00
smbfs smbfs: ansify 2023-02-07 23:35:11 +00:00
tarfs tarfs: Use the existing CTLFLAG_RWTUN flag definition 2023-04-12 12:20:38 +08:00
tmpfs tmpfs: support the nosymfollow mount option 2023-02-23 15:15:17 +02:00
udf udf: Remove set but unused variable from udf_getattr. 2023-04-10 10:31:45 -07:00
unionfs unionfs_mkdir(): handle dvp reclamation 2023-04-17 20:31:40 -05:00