vget - get a vnode from the free list
#include <sys/param.h>
#include <sys/vnode.h>
int
vget(struct vnode *vp, int flags, struct proc *p);
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.
[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.
vnode(9), vput(9), vref(9), vrele(9)
This man page was originally written by Doug Rabson for
FreeBSD.
OpenBSD 3.6 July 24, 1996
[ Back ] |