VHOLD(9) MidnightBSD Kernel Developer’s Manual VHOLD(9)

NAME

vhold, vdrop, vdropl — acquire/release a hold on a vnode

SYNOPSIS

#include <sys/param.h>
#include <sys/vnode.h>

void

vhold(struct vnode *vp);

void

vdrop(struct vnode *vp);

void

vdropl(struct vnode *vp);

DESCRIPTION

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.

SEE ALSO

vbusy(9), vfree(9)

AUTHORS

This manual page was written by Chad David 〈davidc@acns.ab.ca〉.

MidnightBSD 0.3 April 1, 2007 MidnightBSD 0.3