---
name: "vdropl"
section: "9freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/vdrop/9freebsd"
---

# vdropl(9freebsd)

acquire/release a hold on a vnode

Part of [vdrop(9freebsd)](/vdrop/9freebsd.md).

## 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*\

**vholdl**(*struct vnode \*vp*);

*void*\

**vdrop**(*struct vnode \*vp*);

*void*\

**vdropl**(*struct vnode \*vp*);

## DESCRIPTION

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.

## SEE ALSO

[vnode(9)](/vnode/9.md)

## AUTHORS

This manual page was written by Chad David ⟨*davidc@acns.ab.ca*⟩.
