table of contents
INSMNTQUE(9) | Kernel Developer's Manual | INSMNTQUE(9) |
NAME¶
insmntque
, insmntque1
—
SYNOPSIS¶
#include <sys/param.h>
#include <sys/vnode.h>
int
insmntque
(struct
vnode *vp, struct mount
*mp);
int
insmntque1
(struct
vnode *vp, struct mount
*mp, void (*dtr)(struct
vnode *, void *), void
*dtr_arg);
DESCRIPTION¶
Theinsmntque
() function associates a vnode with a
mount. This includes updating v_mount for the vnode, and
inserting the vnode into the mount's vnode list.
The mount reference count is incremented for each vnode added to the mount, and that reference is decremented by vgone(9).
The mount's interlock is held while the vnode is inserted. For MP-safe file systems, the vnode must be exclusively locked.
On failure, insmntque
() calls
vgone(9) on the supplied vnode, and then drops the vnode
lock and reference. If more elaborated cleanup after
insmntque
() failure is needed, the
insmntque1
() function may be used instead. The
dtr argument is a pointer to a function that is called
on failure. This function may perform any custom cleanup. The vnode pointer
is supplied as the first argument to dtr. The
dtr_arg argument is the second, supplying any
additional context needed.
RETURN VALUES¶
Theinsmntque
() function will always return 0, unless
the file system is currently being unmounted in which case it may return
EBUSY
. Also, insmntque
() may
be forced to insert the vnode into the mount's vnode list by setting the
VV_FORCEINSMQ flag in the vnode
v_flag, even if the file system is being unmounted.
SEE ALSO¶
vgone(9)AUTHORS¶
This manual page was written by Chad David <davidc@acns.ab.ca>.September 8, 2008 | Linux 4.19.0-10-amd64 |