This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
# Pre13 H03a: bounded qstr comparator carrier
## Scope
- Added a private `struct erofs_qstr` to `src/namei.c` with explicit `name`
and `end` pointers.
- 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.
- `matched` is 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.