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

# vput(9freebsd)

decrement the use count for a vnode

## NAME

**vput**, **vrele**, **vunref** – decrement the use count for a vnode

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/vnode.h\>**

*void*\

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

*void*\

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

*void*\

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

## DESCRIPTION

Decrement the *v\_usecount* field of a vnode.

- *vp*

  the vnode to decrement

The **vrele**() function takes an unlocked vnode and returns with the vnode unlocked.

The **vput**() function should be given a locked vnode as argument, the vnode is unlocked after the function returned. The **vput**() is operationally equivalent to calling [VOP\_UNLOCK(9)](/VOP_UNLOCK/9.md) followed by [vrele(9)](/vrele/9.md), with less overhead.

The **vunref**() function takes a locked vnode as argument, and returns with the vnode locked.

Any code in the system which signified its use of a vnode by usecount should call one of the listed function to decrement use counter. If the *v\_usecount* field of the non-doomed vnode reaches zero, then it will be inactivated and placed on the free list.

The **vrele**() function may lock the vnode. All three functions may sleep.

The hold count for the vnode is always greater or equal to the usecount. Non-forced unmount fails when mount point owns a vnode that has non-zero usecount, see [vflush(9)](/vflush/9.md).

## SEE ALSO

[vget(9)](/vget/9.md), [vnode(9)](/vnode/9.md), [vref(9)](/vref/9.md), [vrefcnt(9)](/vrefcnt/9.md)

## AUTHORS

This manual page was written by Doug Rabson and Konstantin Belousov.
