vhold, vdrop,
    vdropl — acquire/release a
    hold on a vnode
#include
    <sys/param.h>
  
  #include <sys/vnode.h>
void
  
  vhold(struct
    vnode *vp);
void
  
  vholdl(struct
    vnode *vp);
void
  
  vdrop(struct
    vnode *vp);
void
  
  vdropl(struct
    vnode *vp);
The
    vhold()
    and
    vholdl()
    functions increment the v_holdcnt of the given vnode.
    If the vnode has already been added to the free list and is still
    referenced, it will be removed.
The
    vdrop() and
    vdropl()
    functions decrement the v_holdcnt of the vnode. If the
    holdcount is less than or equal to zero prior to calling
    vdrop() or vdropl(), the
    system will panic. If the vnode is no longer referenced, it will be
  freed.
vhold()
    and vdrop() lock the vnode interlock while
    vholdl() and vdropl() expect
    the interlock to already be held.