Provided by: freebsd-manpages_12.2-2_all bug

NAME

       insmntque, insmntque1 — associate a vnode with a mount

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

       The  insmntque() 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

       The insmntque() 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>.

Debian                                          September 8, 2008                                   INSMNTQUE(9)