{
  "status": "shipping",
  "advantages": [
    "Helps preserve access through existing local references while removing the application's original name."
  ],
  "limitations": [
    "Does not establish a complete inventory of other clients' opens.",
    "A hidden name is not evidence of media failure, successful cleanup or secure erasure."
  ],
  "related": [
    "nfs-storage",
    "nfs-preserve-unlinked",
    "unlink",
    "open-file-description"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-16",
  "slug": "nfs-silly-rename",
  "term": "NFS silly rename",
  "aliases": [
    "silly rename",
    "NFS .nfs file"
  ],
  "definition": "NFS silly rename is a client workaround that temporarily renames an in-use file's directory entry and defers its removal until local references are released.",
  "note": "Linux v6.12 uses a hidden .nfs name and deferred unlink. The nfs_unlink branch is conditional on a dentry reference count above one and absence of the inode's preservation flag; this count is not a file-descriptor count. [linux-dir] [linux-unlink] The original Sun paper documents client-crash leftovers and a cross-client removal limitation, not modern fleet rates. [sandberg]",
  "citations": [
    {
      "id": "sandberg",
      "title": "R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh and B. Lyon. Design and Implementation of the Sun Network Filesystem. Summer USENIX 1985, pp. 119-130; open-file semantics, pp. 126-127.",
      "url": "https://www.cs.wisc.edu/~dusseau/Classes/CS736/Papers/nfs.pdf",
      "accessed": "2026-10-16"
    },
    {
      "id": "linux-unlink",
      "title": "Linux v6.12, fs/nfs/unlink.c: nfs_sillyrename and asynchronous cleanup.",
      "url": "https://github.com/torvalds/linux/blob/adc218676eef25575469234709c2d87185ca223a/fs/nfs/unlink.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": "hesela-unlink",
      "title": "Why deleted NFS files become .nfs files",
      "url": "https://hesela.com/analyses/nfs-silly-rename-open-unlink/",
      "accessed": "2026-10-16"
    }
  ]
}
