Files
erofs-freebsd-out-tree/docs/pre3-baseline.md
T
2026-08-13 10:44:59 +02:00

3.3 KiB

repo-pre-3 Maintenance Baseline

Snapshot Identity

repo-pre-3 was created exclusively from the Git-tracked repo-pre-2 tree. Untracked files, ignored files, build outputs, and working-tree-only content were not copied.

snapshot source commit:   034f409841d2edaf7f140fc7475a357c924a5930
snapshot creation commit: 865a702341a82e61ab5ca1d5708a28005277cc0a
repo-pre-2 source tree:   c28e015c74f4d012dfd070f887fabf75d4d4cb16
repo-pre-3 snapshot tree: c28e015c74f4d012dfd070f887fabf75d4d4cb16
tracked files per tree:   281

The matching tree IDs establish path, file-mode, and blob equivalence at snapshot creation. repo-pre-2, repo-pre-1, and src-linux are read-only references for pre3 work.

Phase Scope

Pre3 is an L1 mechanical naming-alignment stage. It contains four independent source tasks:

  1. Rename erofs_init_xattr_prefixes and erofs_cleanup_xattr_prefixes to the Linux-like lifecycle names erofs_xattr_prefixes_init and erofs_xattr_prefixes_cleanup.
  2. Rename the private ACL helper erofs_getacl to erofs_get_acl.
  3. Rename erofs_close_device to erofs_release_device_info while retaining its FreeBSD implementation.
  4. Rename the private mount-state destructor erofs_free_mount to erofs_sb_free while retaining its complete FreeBSD cleanup body.

Only function names and their closed sets of declarations, definitions, and call sites may change. Signatures, behavior, control flow, ordering, locking, ownership, error handling, and file responsibilities must remain unchanged.

Required FreeBSD Differences

  • Xattr-prefix helpers continue to use struct erofs_mount *, not Linux struct super_block *.
  • ACL handling continues to use FreeBSD struct vnode *, struct acl *, and integer errno conventions.
  • Device teardown continues to release GEOM consumers, vnode references, and cdev references in the existing order and under the existing locking rules. It must not adopt the Linux callback signature or ownership model.
  • Mount-state teardown continues to release all FreeBSD GEOM and private filesystem state. A Linux-like name does not make the implementations or lifecycle contracts interchangeable.

Excluded Work

Pre3 does not include feature changes, correctness fixes, ABI changes, codec work, xattr or ACL behavior changes, function reordering, structure layout changes, file splitting, build-system changes, formatting cleanup, or repairs to earlier planning and snapshot material.

Git Workflow

The snapshot, this baseline document, and each of the four rename batches are separate commits. Every commit must be pushed immediately to xdm main and must not be squashed with another batch. Before each commit, its staged paths must be checked against the task-specific allowlist. After each push, local HEAD, xdm/main, and remote main must identify the same commit.

Validation Status

Only static snapshot-equivalence, path-allowlist, Git-state, and documentation checks were performed for pre3 initialization.

build:             NOT RUN
QEMU:              NOT RUN
test scripts:      NOT RUN
smoke tests:       NOT RUN
mount/runtime:     NOT RUN
feature validation: NOT RUN

No compile-time or runtime PASS is claimed by this document. Existing reports copied from repo-pre-2 are historical material and are not fresh validation of repo-pre-3.