freebsd-skq/sys/fs/tmpfs
Konstantin Belousov dbe257d253 tmpfs: resolve deadlock between rename and unmount.
Top-level kern_renameat() increases the writecount on the mount point,
which, together with tmpfs unmount suspending the mount, already
ensures that unmount cannot proceed while rename unlocks and relocks
all operated vnodes.

Remove vfs_busy() call from tmpfs_rename() which was done while
holding a vnode lock, creating the deadlock.  The only intent of the
busy operation seems to be the prevention of unmount, which is already
ensured.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2019-11-24 19:06:38 +00:00
..
tmpfs_fifoops.c tmpfs: ignore tmpfs_set_status() if mount point is read-only. 2019-04-02 13:49:32 +00:00
tmpfs_fifoops.h sys/fs: further adoption of SPDX licensing ID tags. 2017-11-27 15:15:37 +00:00
tmpfs_subr.c Simplify anonymous memory handling with an OBJ_ANON flag. This eliminates 2019-11-19 23:19:43 +00:00
tmpfs_vfsops.c Replace OBJ_MIGHTBEDIRTY with a system using atomics. Remove the TMPFS_DIRTY 2019-10-29 21:06:34 +00:00
tmpfs_vnops.c tmpfs: resolve deadlock between rename and unmount. 2019-11-24 19:06:38 +00:00
tmpfs_vnops.h Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00
tmpfs.h tmpfs: ignore tmpfs_set_status() if mount point is read-only. 2019-04-02 13:49:32 +00:00