Files
erofs-freebsd-out-tree/docs/pre12-batch-09.md
T
2026-08-18 09:20:44 +02:00

1.9 KiB

Pre-12 Batch 09: compression header responsibility

Date: 2026-08-13

Scope

  • Removed the direct internal.h include from decompressor.c and the four decompressor_*.c backend consumers that already include compress.h.
  • Made no declaration, definition, function, storage-duration, or public API changes.

Candidate source

Batch 04 created compress.h with a direct internal.h include and added compress.h to these five translation units while retaining their direct internal.h includes. Batch 06 then made LZMA, DEFLATE, and ZSTD backend functions private and exposed only their descriptor objects through compress.h. This left exactly five duplicate include edges attributable to Batches 04/06.

Static proof

  • compress.h remains the sole owner of z_erofs_decompress_req, z_erofs_decompressor, the LZ4 decompressor prototype, and the three backend descriptor declarations.
  • internal.h remains the sole public owner of z_erofs_decompress and z_erofs_parse_cfgs; it does not include compress.h.
  • The include graph remains acyclic: each affected translation unit includes compress.h, and compress.h includes internal.h, which includes only erofs_fs.h among project headers.
  • Each affected consumer therefore still sees the same complete request, descriptor, mount, map, and superblock types through one guarded include path. No backend prototype or descriptor declaration is duplicated between internal.h and compress.h.
  • The source diff removes exactly one #include "internal.h" line from each of five authorized files and changes no other token.
  • git diff --check and git diff --cached --check were required for this batch.

Deferred validation

No build, QEMU, smoke, feature, or other dynamic validation was run under the execution constraint. The required FreeBSD KLD WITH_ZSTDIO=0/1 matrix and final Plain/LZ4/LZMA validation remain deferred.