vdrop(9)

vdrop9

Acquire/release a hold on a vnode

Part of vhold(9).

Usage

#include <sys/param.h>

#include <sys/vnode.h>

void

vhold(struct vnode *vp);

void

vholdl(struct vnode *vp);

void

vdrop(struct vnode *vp);

void

vdropl(struct vnode *vp);

Overview

The vhold() and vholdl() functions increment the v_holdcnt of the given vnode. If the vnode has already been added to the free list and is still referenced, it will be removed.

The vdrop() and vdropl() functions decrement the v_holdcnt of the vnode. If the holdcount is less than or equal to zero prior to calling vdrop() or vdropl(), the system will panic. If the vnode is no longer referenced, it will be freed.

vhold() and vdrop() lock the vnode interlock while vholdl() and vdropl() expect the interlock to already be held.

Releases

56 releases since FreeBSD 5.0-RELEASE; the text changed 33 times.

  1. 5.0–5.5
  2. 6.0–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0–13.2
  34. 13.3–16.0

Authors

This manual page was written by Chad David ⟨[email protected]⟩.

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