resolve-cached · shipping · also openat2 cache-only lookup

RESOLVE_CACHED

RESOLVE_CACHED is a Linux openat2 resolution flag requiring pathname lookup to complete using cached information.

Related Observatory article: RESOLVE_CACHED on hesela.com

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. [1]

For 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. [2]

A 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. [3] [1]

Relations

related
Path resolution, Dentry, Page cache, O_PATH, RWF_NOWAIT

Limitations

  • Source-derived behavior, not a latency benchmark or a guarantee that the entire open operation or subsequent reads cannot block.

Citations

  1. Linux man-pages: openat2(2), RESOLVE_CACHED and EAGAIN error cases (accessed 2026-11-09)
  2. Linux v6.12: build_open_flags validation and do_sys_openat2 ordering (accessed 2026-11-09)
  3. Linux v6.12: step_into negative dentries and complete_walk (accessed 2026-11-09)
Sources & caveats
  • 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

JSON: /data/terms/resolve-cached.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. RESOLVE_CACHED. Hesela. 2026-11-09. https://hesela.dev/terms/resolve-cached/