NAME
VOP_VPTOCNP – translate a vnode to its component name
SYNOPSIS
#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);
DESCRIPTION
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.
SEE ALSO
NOTES
This interface is a work in progress.
HISTORY
The function VOP_VPTOCNP appeared in FreeBSD 8.0.
AUTHORS
This manual page was written by Joe Marcus Clarke.