VOP_VPTOCNP(9)

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.

  1. 8.0
  2. 8.1
  3. 8.2
  4. 8.3
  5. 8.4
  6. 9.0
  7. 9.1
  8. 9.2
  9. 9.3
  10. 10.0
  11. 10.1
  12. 10.2
  13. 10.3
  14. 10.4
  15. 11.0
  16. 11.1
  17. 11.2
  18. 11.3
  19. 11.4
  20. 12.0
  21. 12.1
  22. 12.2
  23. 12.3
  24. 12.4
  25. 13.0–13.2
  26. 13.3–16.0

History

The function VOP_VPTOCNP appeared in FreeBSD 8.0.

Authors

This manual page was written by Joe Marcus Clarke.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.