{
  "slug": "o-dsync",
  "term": "O_DSYNC",
  "aliases": [
    "synchronized I/O data integrity completion"
  ],
  "definition": "O_DSYNC is an open-file status flag requiring write operations to complete with synchronized I/O data integrity, covering data and the metadata needed to retrieve it.",
  "note": "A file-length extension is retrieval-critical; a timestamp-only update is not. Linux compares O_DSYNC write completion to a write followed by fdatasync, not to a metadata-free write. [open-api] Handle a short write using its returned byte count; the flag does not promise that one call transfers the entire requested application record. [write-api] Like fdatasync, it is not a replacement for the containing directory's synchronization when name persistence matters. [fsync-api]",
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-15",
  "advantages": [
    "Can avoid synchronization of metadata not required for data retrieval."
  ],
  "limitations": [
    "Does not guarantee lower latency than O_SYNC on every filesystem.",
    "Does not provide crash-atomic writes or a multi-file transaction.",
    "Does not imply direct I/O or page-cache bypass."
  ],
  "related": [
    "o-sync",
    "fdatasync",
    "fsync",
    "directory-fsync",
    "direct-io"
  ],
  "citations": [
    {
      "id": "open-api",
      "title": "Linux man-pages 6.19: open(2), O_SYNC and O_DSYNC",
      "url": "https://man7.org/linux/man-pages/man2/open.2.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "write-api",
      "title": "POSIX.1-2024: write(), synchronized I/O and partial writes",
      "url": "https://pubs.opengroup.org/onlinepubs/9799919799/functions/write.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "fsync-api",
      "title": "Linux man-pages 6.19: fsync(2), metadata and directory synchronization",
      "url": "https://man7.org/linux/man-pages/man2/fsync.2.html",
      "accessed": "2026-10-15"
    },
    {
      "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-15"
    }
  ]
}
