This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
# Pre5 Extraction Baseline
## Repository Baseline
- Outer starting commit: `6421919003ecfab5317dfa70959ab81cd9bbc990`
- Starting `repo-pre-5` tree: `f99462eee8898af209332ef202f8da07f2dd567e`
- Starting `repo-pre-5/src/super.c` blob: `c150d795df42ae4136fbd6e74c3b88903341b05a`
- Execution target: the existing `repo-pre-5` directory
- Source allowlist for the later extraction commits: `repo-pre-5/src/super.c`
The fixed tree and blob identifiers above were read from Git before this
document was created. Pre5 works directly on `repo-pre-5`; it does not create
another snapshot.
## Stage Scope
Pre5 is an L2-S private cleanup responsibility extraction stage. It has two
source tasks:
1. Extract the existing extra-device cleanup from `erofs_sb_free()` into
`static void erofs_free_dev_context(struct erofs_mount *em)`.
2. Extract the existing metabox and packed-inode cleanup from
`erofs_sb_free()` into
`static void erofs_drop_internal_inodes(struct erofs_mount *em)`.
Both tasks are statement movement only. They must preserve FreeBSD GEOM,
vnode, allocation, and ownership semantics. They must not change behavior,
ABI, features, error handling, locking, logging, conditions, release calls, or
object ownership.
## Protected Paths
The following paths must remain unchanged during Pre5 execution:
- `repo-pre-3/`
- `repo-pre-2/`
- `repo-pre-1/`
- `src-linux/`
- `planning/reject/`
- existing reports and other planning stages
Except for this baseline document, no path outside
`repo-pre-5/src/super.c` belongs in the Pre5 source commits.
## Cleanup-Order Invariant
The effective cleanup order must remain exactly:
```text
xattr prefixes
-> metabox
-> packed inode
-> extra devices in reverse order
-> primary device
-> mount state
```
The extraction must not add pointer clearing, conditions, assertions, logs,
locks, return values, error handling, or header declarations.
## Commit and Push Discipline
Each Pre5 commit must contain one planned logical task and must be pushed
immediately to `xdm main`. The commits must not be squashed. Execution must
stop if a push fails or if local, tracking, and remote commit identities
diverge.
## Validation Status at Baseline
| Validation item | Status |
|---|---|
| Static Git baseline capture | RECORDED |
| Source extraction tasks | NOT RUN |
| Build with `WITH_ZSTDIO=0` | NOT RUN |
| Build with `WITH_ZSTDIO=1` | NOT RUN |
| QEMU smoke testing | NOT RUN |
| Manual or automated tests | NOT RUN |
No build, QEMU run, feature validation, regression test, or runtime result is
claimed by this document.