{
  "slug": "force-unit-access",
  "term": "Force Unit Access",
  "aliases": [
    "FUA",
    "REQ_FUA"
  ],
  "definition": "Force Unit Access is a write-request property requiring the flagged data to reach nonvolatile storage before that request is reported complete.",
  "note": "Linux represents this requirement with REQ_FUA. It is distinct from REQ_PREFLUSH, which makes earlier completed writes persistent before the accompanying I/O begins; FUA alone is not that ordering guarantee. The flags can be combined. For devices without native FUA, Linux can implement the requirement with a post-write flush. The name describes completion semantics, not a universal physical bypass of every cache or a guarantee that a multi-block write is atomic.",
  "status": "shipping",
  "advantages": [
    {
      "text": "Allows persistence to be required for a specific write's completion.",
      "citationIds": [
        "linux-cache"
      ]
    }
  ],
  "limitations": [
    {
      "text": "Does not replace the preflush guarantee for previously completed writes.",
      "citationIds": [
        "linux-cache"
      ]
    }
  ],
  "related": [
    "cache-flush",
    "write-back-cache",
    "write-through-cache",
    "persistence-ordering",
    "power-loss-protection"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "linux-cache",
      "title": "Linux kernel documentation. Explicit volatile write back cache control: REQ_PREFLUSH and REQ_FUA.",
      "url": "https://docs.kernel.org/block/writeback_cache_control.html",
      "accessed": "2026-10-12"
    },
    {
      "id": "hesela-stability",
      "title": "NFS stable writes: what COMMIT, flush and FUA actually promise",
      "url": "https://hesela.com/analyses/nfs-stable-writes-flush-fua/",
      "accessed": "2026-10-12"
    }
  ],
  "updated": "2026-10-12"
}
