3.3 KiB
3.3 KiB
EROFS Feature Status
This list describes behavior implemented and manually qualified in the FreeBSD 15 module. It is not a claim of complete Linux EROFS feature parity.
Filesystem and Metadata
- Read-only mount/unmount and
statfs. - Superblock CRC32C, declared image/media bounds, 48-bit block/root-NID decode.
- Compact and extended inodes.
- Correct compact non-directory
I_NLINK_1semantics and directorydot_omittedsemantics. - Linux
new_decode_devmajor/minor decoding followed by FreeBSDmakedev(). - Superblock-seeded, inode-metadata-derived vnode/NFS generation synchronized
with
va_gen; metadata-identical payload replacement is outside the stale handle guarantee. - NFS export, 64-bit NID file handles, stale-generation and malformed-FID validation.
Data Layouts
FLAT_PLAINandFLAT_INLINEreads.- Inline tails constrained to the inode metadata block and declared backing bounds.
- Chunk-based files, chunk indexes, holes, device tables, explicit devices, and flatdev mapping.
- LZ4, MicroLZMA, DEFLATE, and ZSTD compressed reads.
- Full and compact indexes, partial references, HEAD2/interlaced records, ztailpacking, and fragment-backed compressed data used by qualified images.
- Compressed
va_bytes/st_blocksfrom the complete 48-bit on-disk compressed block count; plain, inline, and chunk files retain logical block rounding.
Vnode and Directory Operations
vget, root lookup,vfs_hash, namecache, andvn_vget_inointegration.lookup,readdir, stable restart cookies, cold nested lookup, and Linux-compatible nonzero final-name padding.- Shared strict validation for dirent arrays,
nameoff, block bounds, and illegal names. getattr, access checks,readlink,pathconf, and read-only mutation rejection, including combined special-vnode setattr requests.- FreeBSD 15
vnode_pager_local_getpagesand compatible async pager entry;VOP_BMAPremains explicitly unsupported.
Xattrs and ACLs
- Inline and shared
user.*,trusted.*, andsecurity.*attributes. - Shared attributes in primary metadata and metabox containers.
- Long-prefix and packed-prefix-table lookup.
- FreeBSD user/system namespace exposure and POSIX access/default ACL reads.
- Read-only xattr/ACL mutation behavior.
Documentation and Validation
erofs(5)manual page.- Markdown manual tests TC001-TC161, with unresolved cases tracked in
issues/. - FreeBSD 15 manual reports with fixture hashes and cleanup evidence.
- Final explicit-extent ordering, 48-bit allocation, special setattr,
OFF_MAXdirectory-cookie, and build-tool failure checks.
Build Qualification
- FreeBSD 15
amd64is the only currently validated and accepted target;src/Makefilerejects other architectures. - ZSTD support is disabled by default (
WITH_ZSTDIO=0). Opt-in builds useWITH_ZSTDIO=1and require a kernel built withoptions ZSTDIO.
Not Implemented or Not Claimed
- Writable filesystem operations.
- A CI pipeline or automated kernel-test harness.
- Positive mapped-payload execution of the explicit compressed-extent format;
TC146 remains PARTIAL and the fixture limitation is tracked under
issues/. - Blanket support for every future EROFS incompat feature or every dedupe encoding; only the explicitly qualified fragment/metabox forms are claimed.
- Performance guarantees from the manual throughput observations.