vfs_busy9
Marks a mount point as busy
Usage
#include <sys/param.h>
#include <sys/mount.h>
int
vfs_busy(struct mount *mp, int flags, struct mtx *interlkp, struct thread *td);
Overview
The vfs_busy() function marks a mount point as busy. The purpose of this function is to synchronize access to a mount point. It also delays unmounting by sleeping on mp if the MNTK_UNMOUNT flag is set in mp->mnt_kern_flag and the LK_NOWAIT flag is not set.
Its arguments are:
- mp
-
The mount point to busy.
- flags
-
Flags controlling how
vfs_busy() should act.- LK_NOWAIT
-
do not sleep if MNTK_UNMOUNT is set.
- interlkp
-
The interlock mutex for mp->mount_lock. If there is any chance the mount point is being unmounted and LK_NOWAIT is not set then interlock must be valid locked mutex.
- td
-
The thread responsible for this call.
Locks
If interlkp is a valid pointer it must be locked on entry, and it will not be unlocked even in the case of an error.
Return values
A 0 value is returned on success. If the mount point is being unmounted ENOENT will always be returned.
Errors
- [ENOENT]
-
The mount point is being unmounted (MNTK_UNMOUNT is set).