{
  "slug": "fdatasync",
  "term": "fdatasync",
  "aliases": [
    "fdatasync()"
  ],
  "definition": "fdatasync is a file-synchronization operation that persists modified data and the metadata required to retrieve it, without requiring synchronization of all other file metadata.",
  "note": "File-size changes must be synchronized because retrieval depends on them; timestamp-only changes need not be. Like a file fsync, fdatasync does not establish persistence of its containing directory entry. Check errors before acknowledging a commit.",
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-13",
  "advantages": [
    "Can avoid metadata work that is unnecessary for data retrieval."
  ],
  "limitations": [
    "Not a transaction across files or a substitute for directory synchronization.",
    "Less required metadata work does not guarantee lower latency on every filesystem."
  ],
  "related": [
    "fsync",
    "msync",
    "sync-file-range",
    "writeback-error"
  ],
  "citations": [
    {
      "id": "fsync-api",
      "title": "Linux man-pages 6.19: fsync(2), fdatasync metadata requirements",
      "url": "https://man7.org/linux/man-pages/man2/fsync.2.html",
      "accessed": "2026-10-13"
    },
    {
      "id": "hesela-fsync",
      "title": "Hesela: Why retrying a failed fsync does not prove durability",
      "url": "https://hesela.com/analyses/fsync-failure-retry-durability/",
      "accessed": "2026-10-13"
    }
  ]
}
