OpenBSD Handbook Manuals
Search

vget(9)

Canonical URL: /vget.9/

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

vgetget a vnode from the free list

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

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

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 () to increment the reference count and remove it from the free list.

[]
The vnode vp is in the process of being cleaned out from the underlying file system.
[]
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.

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

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

OpenBSD 7.9 May 27, 2018 VGET(9)

Need conceptual guidance? Continue in the OpenBSD Handbook.