VOP_LINK(9)

VOP_LINK9

Create a new name for a file

Usage

#include <sys/param.h>

#include <sys/vnode.h>

int

VOP_LINK(struct vnode *dvp, struct vnode *vp, struct componentname *cnp);

Overview

This links a new name in the specified directory to an existing file.

Its arguments are:

dvp

The vnode of the directory.

vp

The vnode of the file to be linked.

cnp

Pathname information about the file.

The pathname info should not be released on exit because it is done by the caller. The directory and file vnodes should not be released on exit.

Locks

VOP_LINK() expects the directory and file vnodes to be locked on entry and will leave the vnodes locked on return.

Return values

Zero is returned if the file was linked successfully, otherwise an error is returned.

Errors

[EMLINK]

The file has too many links.

[EPERM]

The file is immutable.

[EXDEV]

A hard link is not possible between different file systems.

Releases

83 releases since FreeBSD 2.2.2-RELEASE; the text changed 45 times.

  1. 2.2.2–2.2.8
  2. 2.2.9
  3. 3.0
  4. 3.1–3.2
  5. 3.3–3.5.1
  6. 4.0–4.2
  7. 4.3
  8. 4.4
  9. 4.5–4.11
  10. 5.0
  11. 5.1
  12. 5.2–5.2.1
  13. 5.3–5.5
  14. 6.0–6.3
  15. 6.4
  16. 7.0
  17. 7.1
  18. 7.2
  19. 7.3
  20. 7.4
  21. 8.0
  22. 8.1
  23. 8.2
  24. 8.3
  25. 8.4
  26. 9.0
  27. 9.1
  28. 9.2
  29. 9.3
  30. 10.0
  31. 10.1
  32. 10.2
  33. 10.3
  34. 10.4
  35. 11.0
  36. 11.1
  37. 11.2
  38. 11.3
  39. 11.4
  40. 12.0
  41. 12.1
  42. 12.2
  43. 12.3
  44. 12.4
  45. 13.0–13.2
  46. 13.3–16.0

Authors

This manual page was originally written by Doug Rabson.

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