linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/8] staging: apfs: init APFS filesystem support
@ 2025-03-20  0:13 Ethan Carter Edwards
  2025-03-20  0:13 ` [PATCH RFC v2 1/8] staging: apfs: init lzfse compression library for APFS Ethan Carter Edwards
                   ` (10 more replies)
  0 siblings, 11 replies; 25+ messages in thread
From: Ethan Carter Edwards @ 2025-03-20  0:13 UTC (permalink / raw)
  To: brauner, tytso, jack, viro
  Cc: Greg Kroah-Hartman, ernesto.mnd.fernandez, dan.carpenter, sven,
	ernesto, gargaditya08, willy, asahi, linux-kernel, linux-fsdevel,
	linux-staging, Ethan Carter Edwards

Hello everyone,

In series 2, I have fixed the formatting with clang-format of the lzfse
library and fixed the comments to use linux kernel styles. I also
removed my Copyright from files where it was not appropriate. 
Additionally, I removed the encode.c files as they were unused and 
not compiled into the final module They should be easy enough to add 
back if needed. I also rebased on Linus's tree, just in case. 
Nothing broke! ;)

I am holding off on adding Ernesto's Co-developed-by and Signed-off-by
tags until I get a better grasp of where this module is headed. I hope
to here back from Christian and the LSFMMBPF folks sometime in the next
few weeks.

I understand the jury is still out on supporting both reading and
writing. As it stands, I have configured the code to support
reading/writing on mount, but upstream auto-rw is configurable via a
CONFIG option. Some people have expressed that they want the module
upstreamed even if only read is supported. I will stay tuned and make
changes as needed.

Additionally, I realize that staging/ may not be the correct location
for the driver. However, I am basing my upstream process off of the
erofs process. They started in staging. I understand that the correct
tree and dir will be discussed as next weeks LSFMMBPF summit, 
so I will wait on their feedback before making any moves.

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.

Ernesto, the original author, encouraged me to submit any code
improvements upstream instead of submitting here. I am upstreaming my 
code improvements to his tree, but I will continue the effort here in
caes upstream fs folks are interested. In any case, my goal here is to
create discussion around the project and make the code better while I am
at it.

Some people on Asahi channels have mentioned that this driver could be
helpful for implementing certain features like the fingerprint reader and
simplify the boot process some. This feedback encourages me to continue
with this effort. Asahi folks, keep at it, y'all are awesome.

[0]: https://lore.kernel.org/lkml/20250307165054.GA9774@eaf/

Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
---
Changes in v2:
- remove Ethan copyright in files
- cleanup/format lzfse code and comments
- fix a few checkpatch problems
- Link to v1: https://lore.kernel.org/r/20250314-apfs-v1-0-ddfaa6836b5c@ethancedwards.com

---
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                      | 1192 ++++++++
 drivers/staging/apfs/apfs_raw.h                  | 1566 +++++++++++
 drivers/staging/apfs/btree.c                     | 1174 ++++++++
 drivers/staging/apfs/compress.c                  |  441 +++
 drivers/staging/apfs/dir.c                       | 1439 ++++++++++
 drivers/staging/apfs/extents.c                   | 2370 ++++++++++++++++
 drivers/staging/apfs/file.c                      |  163 ++
 drivers/staging/apfs/inode.c                     | 2234 +++++++++++++++
 drivers/staging/apfs/key.c                       |  337 +++
 drivers/staging/apfs/libzbitmap.c                |  448 +++
 drivers/staging/apfs/libzbitmap.h                |   32 +
 drivers/staging/apfs/lzfse/lzfse.h               |   86 +
 drivers/staging/apfs/lzfse/lzfse_decode.c        |   66 +
 drivers/staging/apfs/lzfse/lzfse_decode_base.c   |  725 +++++
 drivers/staging/apfs/lzfse/lzfse_encode_tables.h |  224 ++
 drivers/staging/apfs/lzfse/lzfse_fse.c           |  214 ++
 drivers/staging/apfs/lzfse/lzfse_fse.h           |  632 +++++
 drivers/staging/apfs/lzfse/lzfse_internal.h      |  599 ++++
 drivers/staging/apfs/lzfse/lzfse_tunables.h      |   50 +
 drivers/staging/apfs/lzfse/lzvn_decode_base.c    |  721 +++++
 drivers/staging/apfs/lzfse/lzvn_decode_base.h    |   53 +
 drivers/staging/apfs/lzfse/lzvn_encode_base.h    |  105 +
 drivers/staging/apfs/message.c                   |   29 +
 drivers/staging/apfs/namei.c                     |  132 +
 drivers/staging/apfs/node.c                      | 2069 ++++++++++++++
 drivers/staging/apfs/object.c                    |  315 +++
 drivers/staging/apfs/snapshot.c                  |  683 +++++
 drivers/staging/apfs/spaceman.c                  | 1433 ++++++++++
 drivers/staging/apfs/super.c                     | 2098 ++++++++++++++
 drivers/staging/apfs/symlink.c                   |   77 +
 drivers/staging/apfs/transaction.c               |  959 +++++++
 drivers/staging/apfs/unicode.c                   | 3156 ++++++++++++++++++++++
 drivers/staging/apfs/unicode.h                   |   27 +
 drivers/staging/apfs/xattr.c                     |  911 +++++++
 drivers/staging/apfs/xfield.c                    |  171 ++
 41 files changed, 27056 insertions(+)
---
base-commit: a7f2e10ecd8f18b83951b0bab47ddaf48f93bf47
change-id: 20250210-apfs-9d4478785f80

Best regards,
-- 
Ethan Carter Edwards <ethan@ethancedwards.com>


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-05-21 16:28 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-20  0:13 [RFC PATCH v2 0/8] staging: apfs: init APFS filesystem support Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 1/8] staging: apfs: init lzfse compression library for APFS Ethan Carter Edwards
2025-03-20  3:00   ` Aditya Garg
2025-03-20  0:13 ` [PATCH RFC v2 2/8] staging: apfs: init unicode.{c,h} Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 3/8] staging: apfs: init apfs_raw.h to handle on-disk structures Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 4/8] staging: apfs: init libzbitmap.{c,h} for decompression Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 5/8] staging: apfs: init APFS Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 6/8] staging: apfs: init build support for APFS Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 7/8] staging: apfs: init TODO and README.rst Ethan Carter Edwards
2025-03-20  0:13 ` [PATCH RFC v2 8/8] MAINTAINERS: apfs: add entry and relevant information Ethan Carter Edwards
2025-03-20  0:43 ` [RFC PATCH v2 0/8] staging: apfs: init APFS filesystem support Gao Xiang
2025-03-20  5:39 ` Dan Carpenter
2025-05-12 10:11 ` Subject: " Yangtao Li
2025-05-12 23:40   ` Ernesto A. Fernández
2025-05-13  4:13     ` Nick Chan
2025-05-13 10:43       ` Jan Kara
2025-05-13 11:41       ` Aditya Garg
2025-05-14 20:19       ` Ernesto A. Fernández
2025-05-15  5:08         ` Nick Chan
2025-05-15 16:00           ` Sven Peter
2025-05-20  5:08     ` Yangtao Li
2025-05-20 18:59       ` Ernesto A. Fernández
2025-05-21 10:14         ` Jan Kara
2025-05-21 16:27           ` Ernesto A. Fernández
2025-05-15  5:10   ` John Paul Adrian Glaubitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).