VGET(9) | Kernel Developer's Manual | VGET(9)

# NAME

`vget` — get a vnode from the free list

# SYNOPSIS

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

int
`vget`(struct vnode *vp, int flags);

# DESCRIPTION

Get a vnode from the free list and increment its reference count.

Its arguments are:

vp
  The vnode to remove from the free list.
flags
  If non-zero, the vnode will also be locked.

When not in use, vnodes are kept on a free list. The vnodes still reference valid files but may be reused to refer to a new file at any time. Often, these vnodes are also held in caches in the system, such as the name cache.

When a vnode which is on the free list is used again, for instance if the vnode was found in the name cache as a result of a call to VOP_LOOKUP(9), then the new user must call `vget`() to increment the reference count and remove it from the free list.

# ERRORS

[`ENOENT`]
  The vnode vp is in the process of being cleaned out from the underlying file system.
[`EBUSY`]
  The vnode vp is in the process of being cleaned out from the underlying file system, and it wasn't possible to sleep on it because the `LK_NOWAIT` flag was specified.

# SEE ALSO

vnode(9), vput(9), vref(9), vrele(9)

# AUTHORS

This man page was originally written by Doug Rabson for FreeBSD.

May 27, 2018 | Debian