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, struct proc
*p);
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.
- p
- The process responsible for this call.
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
AUTHORS
This man page was originally written by Doug Rabson for FreeBSD.