-
Technical task
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
None
-
3
-
9223372036854775807
lfs find becomes the first consumer of llapi_scan_namespace() (LU-20603):
its output path consumes per-object records instead of walking and printing in one pass. Behaviour is preserved.
It is the honest test of the record. If lfs find rebuilds on the API without special cases, the record carries what a consumer needs; if it does not, the record is wrong, and that is far cheaper to learn now than after a wire format is frozen around it. It also stops lfs find becoming technical debt beside LFU.
*Acceptance:* the sanity.sh::test_56* series stays green.
*Known work, from the LU-20603 lab.* A regular file's record that carries neither LLAPI_SCAN_SIZE nor LLAPI_SCAN_BLOCKS (i.e. plain layout files that do not have strict or lazy Size-on-MDT, LU-11962), then the size is stored only on the OST(s) and the MDT's statx has no authoritative size, so the mask reports "cannot answer" rather than zero. lfs find copes today by testing OBD_MD_FLSIZE / OBD_MD_FLLAZYSIZE and falling back to a stat() glimpse. --size, --blocks and --lazy need that fallback carried over explicitly; it is the one thing consuming records does not inherit for free.
*Scope:* a behaviour-preserving change of internals. Pushing the filter down into the scanner, with its I/O cost tiers, is separate work.
*Review note:* pushed as one stacked Gerrit series with LU-20603, so the API and its first caller are visible together.