{
  "slug": "zfs-snapshot-hold",
  "term": "ZFS snapshot hold",
  "aliases": [
    "zfs hold",
    "ZFS user reference"
  ],
  "definition": "A ZFS snapshot hold is a named user reference that blocks ordinary destruction of a snapshot while the hold remains.",
  "note": "Hold lifecycle: each snapshot has its own tag namespace. zfs holds lists its references, userrefs counts them, and zfs release removes a specified tag. A hold causes ordinary destruction to fail with EBUSY. [hold] [properties]\n\nPending deletion: zfs destroy -d can mark a held or cloned snapshot for automatic removal once eligible. The snapshot remains visible while marked; inspect defer_destroy as well as holds and clone dependencies before releasing protection. [destroy]\n\nProtection scope: a releasable hold is not immutable retention against an actor authorized to release it, nor a copy outside the source pool. This is a scope inference from the documented operations. [hold] [concepts]\n\nRelease boundary: releasing the final user hold can destroy a snapshot already marked for deletion when no clones remain. A new hold delays eligibility but does not cancel the request; inspect defer_destroy before changing references. The release permission is itself documented as potentially destructive. [allow] [destroy]",
  "related": [
    "snapshot",
    "zfs-clone",
    "zfs-bookmark",
    "immutability-storage",
    "backup",
    "zfs-deferred-snapshot-destruction"
  ],
  "citations": [
    {
      "id": "hold",
      "title": "OpenZFS v2.3: zfs-hold(8), named holds and release",
      "url": "https://openzfs.github.io/openzfs-docs/man/v2.3/8/zfs-hold.8.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "properties",
      "title": "OpenZFS v2.3: zfsprops(7), origin, clones, userrefs and defer_destroy",
      "url": "https://openzfs.github.io/openzfs-docs/man/v2.3/7/zfsprops.7.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "destroy",
      "title": "OpenZFS v2.3: zfs-destroy(8), dependent and deferred destruction",
      "url": "https://openzfs.github.io/openzfs-docs/man/v2.3/8/zfs-destroy.8.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "concepts",
      "title": "OpenZFS v2.3: zfsconcepts(7), dataset clones and block cloning",
      "url": "https://openzfs.github.io/openzfs-docs/man/v2.3/7/zfsconcepts.7.html",
      "accessed": "2026-10-22"
    },
    {
      "id": "allow",
      "title": "OpenZFS v2.3: zfs-allow(8), release permission may destroy a snapshot",
      "url": "https://openzfs.github.io/openzfs-docs/man/v2.3/8/zfs-allow.8.html",
      "accessed": "2026-10-22"
    }
  ],
  "advantages": [],
  "limitations": [],
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-22",
  "provenance": [
    "Source review of OpenZFS v2.3 documentation; no pool, promotion or recovery experiment was performed."
  ]
}
