The
vhold ();
function increments 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.
The difference between
vdrop ();
and
vdropl ();
is that
vdrop ();
locks the vnode interlock and then calls
vdropl ();
while
vdropl ();
expects the interlock to already be locked.