1.3 KiB
1.3 KiB
Pre13 H03a: bounded qstr comparator carrier
Scope
- Added a private
struct erofs_qstrtosrc/namei.cwith explicitnameandendpointers. - Converted
erofs_dirnamecmp()to consume bounded qstr objects. - Kept the existing search helpers on their original pointer/length interface through a temporary local adapter. Block search, VOP lookup, vnode locking, namecache timing, errno handling, readdir, and cookies are unchanged.
Static equivalence
- Search and disk lengths are still derived from the same pointer ranges.
matchedis clamped to both ranges before comparison.- Comparison remains unsigned byte ordering, supports non-NUL search keys and embedded NUL bytes, and never assumes a trailing NUL at the disk boundary.
- The adapter performs no allocation, copying, normalization, or error mapping.
Comparator gate
Tests baseline: ce03c283e6e2cb8f1b69c8eff21f7d06098a4fbe.
- Python deterministic corpus: PASS, 11,562 cases.
- Independent C harness: PASS, 1,048,576 cases.
These host comparator results prove the old and new comparison contracts are equivalent for the generated corpus. They are not dynamic filesystem feature test results. H03 still requires TC042, TC043, TC044, TC045, TC053, TC054, TC123, TC141, and TC148, followed by the final smoke test.