VOP_VPTOCNP9
Translate a vnode to its component name
Usage
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/vnode.h>
int
VOP_VPTOCNP(struct vnode *vp, struct vnode **dvp, struct ucred *cred, char *buf, int *buflen);
Overview
This translates a vnode into its component name, and writes that name to the head of the buffer specified by buf.
- vp
-
The vnode to translate.
- dvp
-
The vnode of the parent directory of vp.
- cred
-
The caller credentials.
- buf
-
The buffer into which to prepend the component name.
- buflen
-
The remaining size of the buffer.
The default implementation of VOP_VPTOCNP scans through vp's parent directory looking for a dirent with a matching file number. If vp is not a directory, then VOP_VPTOCNP returns ENOENT.
Locks
The vnode should be locked on entry and will still be locked on exit. The parent directory vnode will be unlocked on a successful exit. However, it will have its use count incremented.
Return values
Zero is returned on success, otherwise an error code is returned.
Errors
- [ENOMEM]
-
The buffer was not large enough to hold the vnode's component name.
- [ENOENT]
-
The vnode was not found on the file system.
Notes
This interface is a work in progress.
Releases
39 releases since FreeBSD 8.0-RELEASE; the text changed 25 times.