---
name: "vref"
section: "9"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/vref"
---

# vref(9)

increment the use count for a vnode

## NAME

**vref**, **vrefl** – increment the use count for a vnode

## SYNOPSIS

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

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

*void*\

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

*void*\

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

## DESCRIPTION

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

- *vp*

  the vnode to increment

Each vnode maintains a reference count of how many parts of the system are using the vnode. This allows the system to detect when a vnode is no longer being used and can be safely recycled for a different file.

Any code in the system which is using a vnode (e.g. during the operation of some algorithm or to store in a data structure) should call **vref**() or **vrefl**().

**vref**() locks the vnode interlock while **vrefl**() expects the interlock to already be held.

## SEE ALSO

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

## AUTHORS

This manual page was written by Doug Rabson.
