{
  "slug": "write-around-cache",
  "term": "Write-around cache",
  "aliases": [
    "write-around caching",
    "writearound"
  ],
  "definition": "Write-around caching sends writes to the backing store without retaining their payload in the cache, while reads may still use or populate it.",
  "note": "In Linux 6.12 bcache, writearound selects write bypass and invalidates affected cached mappings. Read fills remain subject to the implementation's bypass and insertion rules. [bcache-612] [bcache-request-612]\n\nChanging mode does not certify that earlier dirty data has drained. [bcache-sysfs-612] A write overlapping dirty data already undergoing background writeback can still take the write-back path. [bcache-request-612]\n\nThe policy differs from dm-cache passthrough, which serves all reads from the origin and requires a clean cache. Neither name establishes end-to-end power-loss durability; lower-layer volatile caches still need the applicable persistence protocol. [dm-cache-612] [linux-cache]",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "related": [
    "write-back-cache",
    "write-through-cache",
    "cache-admission",
    "cache-flush",
    "force-unit-access"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "bcache-612",
      "title": "Linux 6.12 bcache documentation: cache_mode, bypass and error handling.",
      "url": "https://docs.kernel.org/6.12/admin-guide/bcache.html",
      "accessed": "2026-10-25"
    },
    {
      "id": "bcache-request-612",
      "title": "Linux v6.12 bcache request.c: check_should_bypass, cached_dev_write and bch_data_insert_start.",
      "url": "https://raw.githubusercontent.com/torvalds/linux/v6.12/drivers/md/bcache/request.c",
      "accessed": "2026-10-25"
    },
    {
      "id": "dm-cache-612",
      "title": "Linux 6.12 dm-cache documentation: cache operating modes.",
      "url": "https://www.kernel.org/doc/html/v6.12/admin-guide/device-mapper/cache.html",
      "accessed": "2026-10-25"
    },
    {
      "id": "linux-cache",
      "title": "Linux explicit volatile write-back cache control: PREFLUSH and FUA.",
      "url": "https://docs.kernel.org/block/writeback_cache_control.html",
      "accessed": "2026-10-25"
    },
    {
      "id": "bcache-sysfs-612",
      "title": "Linux v6.12 bcache sysfs.c: cache_mode updates and dirty-data state.",
      "url": "https://raw.githubusercontent.com/torvalds/linux/v6.12/drivers/md/bcache/sysfs.c",
      "accessed": "2026-10-25"
    }
  ],
  "provenance": [
    "Block-storage policy usage, illustrated by Linux 6.12 bcache and contrasted with dm-cache; not a hardware benchmark or a general cache-removal procedure."
  ],
  "updated": "2026-10-25"
}
