Hello everyone, This is a follow up patchset to the driver I sent an email about a few weeks ago [0]. I understand this patchset will probably get rejected, but I wanted to report on what I have done thus far. I have got the upstream module imported and building, and it passes some basic tests so far (I have not tried getting XFS/FStests running yet). Like mentioned earlier, some of the files have been moved to folios, but a large majority of them still use bufferheads. I would like to have them completely removed before moved from staging/ into fs/. I have split everything up into separate commits as best as I could. Most of the C files rely in functions from other C files, so I included them all in one patch/commit. I am curious to hear everyone's thoughts on this and to start getting the ball rolling for the code-review process. Please feel free to include/CC anyone who may be interested in this driver/the review process. I have included a few people, but have certainly missed others. [0]: https://lore.kernel.org/lkml/20250307165054.GA9774@eaf/ Signed-off-by: Ethan Carter Edwards <ethan@xxxxxxxxxxxxxxxxx> --- Ethan Carter Edwards (8): staging: apfs: init lzfse compression library for APFS staging: apfs: init unicode.{c,h} staging: apfs: init apfs_raw.h to handle on-disk structures staging: apfs: init libzbitmap.{c,h} for decompression staging: apfs: init APFS staging: apfs: init build support for APFS staging: apfs: init TODO and README.rst MAINTAINERS: apfs: add entry and relevant information MAINTAINERS | 6 + drivers/staging/Kconfig | 2 + drivers/staging/apfs/Kconfig | 13 + drivers/staging/apfs/Makefile | 10 + drivers/staging/apfs/README.rst | 87 + drivers/staging/apfs/TODO | 7 + drivers/staging/apfs/apfs.h | 1193 ++++++++ drivers/staging/apfs/apfs_raw.h | 1567 +++++++++++ drivers/staging/apfs/btree.c | 1174 ++++++++ drivers/staging/apfs/compress.c | 442 +++ drivers/staging/apfs/dir.c | 1440 ++++++++++ drivers/staging/apfs/extents.c | 2371 ++++++++++++++++ drivers/staging/apfs/file.c | 164 ++ drivers/staging/apfs/inode.c | 2235 +++++++++++++++ drivers/staging/apfs/key.c | 337 +++ drivers/staging/apfs/libzbitmap.c | 442 +++ drivers/staging/apfs/libzbitmap.h | 31 + drivers/staging/apfs/lzfse/lzfse.h | 136 + drivers/staging/apfs/lzfse/lzfse_decode.c | 74 + drivers/staging/apfs/lzfse/lzfse_decode_base.c | 652 +++++ drivers/staging/apfs/lzfse/lzfse_encode.c | 163 ++ drivers/staging/apfs/lzfse/lzfse_encode_base.c | 826 ++++++ drivers/staging/apfs/lzfse/lzfse_encode_tables.h | 218 ++ drivers/staging/apfs/lzfse/lzfse_fse.c | 217 ++ drivers/staging/apfs/lzfse/lzfse_fse.h | 606 +++++ drivers/staging/apfs/lzfse/lzfse_internal.h | 612 +++++ drivers/staging/apfs/lzfse/lzfse_main.c | 336 +++ drivers/staging/apfs/lzfse/lzfse_tunables.h | 60 + drivers/staging/apfs/lzfse/lzvn_decode_base.c | 721 +++++ drivers/staging/apfs/lzfse/lzvn_decode_base.h | 68 + drivers/staging/apfs/lzfse/lzvn_encode_base.c | 593 ++++ drivers/staging/apfs/lzfse/lzvn_encode_base.h | 116 + drivers/staging/apfs/message.c | 29 + drivers/staging/apfs/namei.c | 133 + drivers/staging/apfs/node.c | 2069 ++++++++++++++ drivers/staging/apfs/object.c | 315 +++ drivers/staging/apfs/snapshot.c | 684 +++++ drivers/staging/apfs/spaceman.c | 1433 ++++++++++ drivers/staging/apfs/super.c | 2099 ++++++++++++++ drivers/staging/apfs/symlink.c | 78 + drivers/staging/apfs/transaction.c | 959 +++++++ drivers/staging/apfs/unicode.c | 3156 ++++++++++++++++++++++ drivers/staging/apfs/unicode.h | 27 + drivers/staging/apfs/xattr.c | 912 +++++++ drivers/staging/apfs/xfield.c | 171 ++ 45 files changed, 28984 insertions(+) --- base-commit: 695caca9345a160ecd9645abab8e70cfe849e9ff change-id: 20250210-apfs-9d4478785f80 Best regards, -- Ethan Carter Edwards <ethan@xxxxxxxxxxxxxxxxx>