---
name: "vgonel"
section: "9freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "8.1-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/vgonel/9freebsd"
---

# vgonel(9freebsd)

prepare a vnode for reuse

## NAME

**vgone**, **vgonel** – prepare a vnode for reuse

## SYNOPSIS

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

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

*void*\

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

*void*\

**vgonel**(*struct vnode \*vp*, *struct thread \*td*);

## DESCRIPTION

**vgone**() and **vgonel**() prepare a vnode for reuse by another file system. The preparation includes the cleaning of all file system specific data and the removal from its mount point vnode list.

If the vnode has a *v\_usecount* of zero, and its VI\_DOOMED flag is not set, it is moved to the head of the free list as in most cases the vnode is about to be reused, or its file system is being unmounted.

The difference between **vgone**() and **vgonel**() is that **vgone**() locks the vnode interlock and then calls **vgonel**() while **vgonel**() expects the interlock to already be locked.

## AUTHORS

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