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

41 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# repo22 Linux/FreeBSD 结构对齐状态
## 已完成
- 使用 `/work/dev-src-linux/fs/erofs` 的 Linux 7.1-rc1 快照逐文件复核;未使用
两个实现共享历史的假设。
- `namei.c` 的静态 helper 已从 `erofs_find_target_dirent` 恢复为 Linux 名称
`find_target_dirent`
- `lzma.c``deflate.c``zstd.c` 已按 Linux 职责名调整为
`decompressor_lzma.c``decompressor_deflate.c`
`decompressor_zstd.c`
- 解压后端原型已移入 `internal.h`MicroLZMA 内嵌 XZ 的 allocator helper
已限制为编译单元内部符号。
- `src/Makefile` 已按 Linux 的 metadata、压缩调度/映射、算法后端顺序组织,
并成为 `build.sh` 的唯一源码和模块名来源。
- 受跟踪的对象目录、vnode 生成头和 amd64/x86 机器 symlink 已删除并忽略。
## 保留差异
- `erofs_vnops.c` 承载 FreeBSD vnode、pager、NFS 和只读操作语义。
- `lz4.c` 保持独立,因为 BSD 后端不使用 Linux page/LZ4 调度接口。
- 后端函数保持 BSD 内部 API,而不是复制 Linux decompressor descriptor 和
page 生命周期。
- FreeBSD 路径返回正 errno,并保留 GEOM/provider、lockmgr 和 vnode 规则。
- Linux `sysfs`、file-backed、fscache、page-cache sharing 和 `zutil` 职责不以
空文件模拟。
- 当前构建门控仅允许已验证的 FreeBSD 15 `amd64`
## 2026-08-09 验证
- VMFreeBSD `15.0-RELEASE-p8` amd64。
- 构建源:FreeBSD `15.0 RELEASE-p9` `sys` 树。
- `WITH_ZSTDIO=0` 构建通过,模块 SHA256
`d11d0319dc1d786eaa868a0c05c2abaf43da8480acacb0e1e4b72b7542b05432`
`ZSTD_*` 未解析符号。
- `WITH_ZSTDIO=1` 构建通过,模块 SHA256
`82471f19812e9877ea06901d1ba0cb4378b2bc6476ec70f6e024e0dc777c0c71`
编译命令包含 `-DZSTDIO` 并引用 FreeBSD 内核 ZSTD API。
- 启用模块完成加载、`zstd-level1.erofs` 只读挂载、6 个文件读取与 SHA256、
卸载、md detach 和 KLD unload;测试后无遗留挂载或模块。