logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

insmntque, insmntque1 — associate a vnode with a mount

Authors

       This manual page was written by Chad David <davidc@acns.ab.ca>.

Debian                                          September 8, 2008                                   INSMNTQUE(9)

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.

Name

       insmntque, insmntque1 — associate a vnode with a mount

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)

Synopsis

#include<sys/param.h>#include<sys/vnode.h>intinsmntque(structvnode*vp, structmount*mp);

       intinsmntque1(structvnode*vp, structmount*mp, void(*dtr)(structvnode*,void*), void*dtr_arg);

See Also