{
  "slug": "nfs-stateid",
  "term": "NFSv4 stateid",
  "aliases": [
    "NFS state identifier"
  ],
  "definition": "An NFSv4 stateid is a protocol value identifying server-managed state such as an open, byte-range lock, delegation or layout.",
  "note": "In NFSv4.1 the 16-byte representation contains a sequence field and an opaque part. A filehandle identifies the object; an ordinary stateid identifies associated state and must agree with the current filehandle. Special stateid values have operation-specific meanings. A stateid is neither a content checksum nor a persistence receipt. [stateid]\n\nAfter state loss or revocation, recovery must follow the protocol; retaining a filehandle alone does not preserve the previous open or lock state. [recovery]",
  "related": [
    "nfs-storage",
    "nfs-delegation",
    "nfs-lease",
    "nfs-state-reclaim"
  ],
  "limitations": [
    {
      "text": "The opaque part is not a stable file ID or proof of valid post-restart state.",
      "citationIds": [
        "stateid",
        "recovery"
      ]
    }
  ],
  "citations": [
    {
      "id": "stateid",
      "title": "RFC 8881 (NFSv4.1), section 8.2, Stateid Definition.",
      "url": "https://www.rfc-editor.org/rfc/rfc8881.html#section-8.2",
      "accessed": "2026-10-18"
    },
    {
      "id": "recovery",
      "title": "RFC 8881 (NFSv4.1), section 8.4, Crash Recovery.",
      "url": "https://www.rfc-editor.org/rfc/rfc8881.html#section-8.4",
      "accessed": "2026-10-18"
    },
    {
      "id": "hesela-stability",
      "title": "NFS stable writes: what COMMIT, flush and FUA actually promise",
      "url": "https://hesela.com/analyses/nfs-stable-writes-flush-fua/#state-recovery",
      "accessed": "2026-10-18"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-18"
}
