{
  "slug": "resolve-cached",
  "term": "RESOLVE_CACHED",
  "aliases": [
    "openat2 cache-only lookup"
  ],
  "definition": "RESOLVE_CACHED is a Linux openat2 resolution flag requiring pathname lookup to complete using cached information.",
  "note": "Available since Linux 5.12, it returns EAGAIN when lookup cannot complete from cached information, for example when uncached revalidation or I/O is required. The flag concerns name lookup, not file-data residency or later read completion. [openat2-api]\n\nFor otherwise valid arguments, Linux v6.12 rejects O_CREAT, O_TRUNC or O_TMPFILE together with RESOLVE_CACHED before pathname lookup. An already existing, cached file does not exempt O_CREAT. Earlier argument checks still apply. [open-source]\n\nA usable cached negative dentry can instead produce ENOENT. EAGAIN can also reflect a rooted-lookup race, so it is not a unique cache-miss diagnosis. A fallback may remove RESOLVE_CACHED while retaining containment, mount and symlink restrictions. [namei-source] [openat2-api]",
  "advantages": [],
  "limitations": [
    "Source-derived behavior, not a latency benchmark or a guarantee that the entire open operation or subsequent reads cannot block."
  ],
  "related": [
    "path-resolution",
    "dentry",
    "page-cache",
    "o-path",
    "rwf-nowait"
  ],
  "citations": [
    {
      "id": "openat2-api",
      "title": "Linux man-pages: openat2(2), RESOLVE_CACHED and EAGAIN error cases",
      "url": "https://man7.org/linux/man-pages/man2/openat2.2.html",
      "accessed": "2026-11-09"
    },
    {
      "id": "open-source",
      "title": "Linux v6.12: build_open_flags validation and do_sys_openat2 ordering",
      "url": "https://github.com/torvalds/linux/blob/v6.12/fs/open.c",
      "accessed": "2026-11-09"
    },
    {
      "id": "namei-source",
      "title": "Linux v6.12: step_into negative dentries and complete_walk",
      "url": "https://github.com/torvalds/linux/blob/v6.12/fs/namei.c",
      "accessed": "2026-11-09"
    }
  ],
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-09",
  "provenance": [
    "Source review of Linux v6.12 and the Linux API manual; no successful native probe.",
    "Human explanation: https://hesela.com/analyses/atomic-rename-directory-durability/#resolve-cached",
    "Source-derived flag table and hashes: https://hesela.dev/research/resolve-cached/contracts.json"
  ]
}
