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.