{
  "status": "shipping",
  "advantages": [
    "Moves the advertised open-file lifetime guarantee to the server rather than relying solely on a client's temporary name."
  ],
  "limitations": [
    "Not proof of data-write durability, indefinite retention or a successful reclaim.",
    "Client implementation, server behavior and returned flags must be evaluated together."
  ],
  "related": [
    "nfs-storage",
    "nfs-silly-rename",
    "unlink",
    "nfs-delegation"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-16",
  "slug": "nfs-preserve-unlinked",
  "term": "NFS open-file preservation",
  "aliases": [
    "OPEN4_RESULT_PRESERVE_UNLINKED",
    "preserve unlinked"
  ],
  "definition": "NFS open-file preservation is the NFSv4.1 OPEN-result promise to retain a file removed while open, including through the server-restart grace period for open reclamation.",
  "note": "RFC 8881 section 18.16.3 defines the capability; a version label alone does not show that it was returned. [rfc8881] Linux v6.12 records the result on the inode and uses it to bypass the silly-rename branch. [linux-open] [linux-dir] Erratum 6865 identifies contradictory REMOVE wording; its status was Reported, not Verified, on 2026-10-16. [erratum]",
  "citations": [
    {
      "id": "linux-open",
      "title": "Linux v6.12, fs/nfs/nfs4proc.c: _nfs4_do_open records the server's preservation flag.",
      "url": "https://github.com/torvalds/linux/blob/adc218676eef25575469234709c2d87185ca223a/fs/nfs/nfs4proc.c",
      "accessed": "2026-10-16"
    },
    {
      "id": "linux-dir",
      "title": "Linux v6.12, fs/nfs/dir.c: nfs_unlink gates silly rename on the inode preservation flag.",
      "url": "https://github.com/torvalds/linux/blob/adc218676eef25575469234709c2d87185ca223a/fs/nfs/dir.c",
      "accessed": "2026-10-16"
    },
    {
      "id": "rfc8881",
      "title": "D. Noveck and C. Lever (editors). RFC 8881, sections 18.16.3 and 18.25.4: OPEN and REMOVE.",
      "url": "https://www.rfc-editor.org/rfc/rfc8881.html#section-18.16.3",
      "accessed": "2026-10-16"
    },
    {
      "id": "erratum",
      "title": "RFC 8881 technical erratum 6865, reported by David Noveck on 2022-02-28; status Reported when checked.",
      "url": "https://www.rfc-editor.org/errata/eid6865",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-unlink",
      "title": "Why deleted NFS files become .nfs files",
      "url": "https://hesela.com/analyses/nfs-silly-rename-open-unlink/",
      "accessed": "2026-10-16"
    }
  ]
}
