[Concept,00/16] fs: ext4l: Complete read-only filesystem support (Part I)

Message ID 20251227204318.886983-1-sjg@u-boot.org
Headers
Series fs: ext4l: Complete read-only filesystem support (Part I) |

Message

Simon Glass Dec. 27, 2025, 8:42 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

This series completes read-only support for the ext4l filesystem driver,
which is a port of the Linux ext4 driver to U-Boot.

The ext4l driver provides more complete ext4 support than the existing
ext4 driver, including proper handling of extents, directory hashing,
and other ext4 features.

Changes include:

Sandbox infrastructure:
- Fix IRQ macros and buffer_head includes for sandbox builds

Core fixes:
- Fix path lookup by implementing proper dentry operations
- Fix fscrypt_match_name to do actual name comparison

Filesystem operations:
- Add directory listing (opendir/readdir/closedir)
- Add file existence check (exists)
- Add file size query (size)
- Add file read support (read)
- Add UUID query (uuid)
- Add filesystem statistics (statfs)

New command:
- Add fsinfo command to display filesystem statistics

Testing:
- Add comprehensive unit tests for all operations
- Enable fsuuid command for sandbox testing


Simon Glass (16):
  CLAUDE.md: Add note about test-declaration placement
  buildman: Fix flaky test_kconfig_change test properly
  linux: buffer_head: Include atomic.h directly
  sandbox: Convert IRQ macros to static inline functions
  ext4l: Fix path lookup by implementing dentry operations
  cmd: Enable fsuuid command for sandbox
  ext4l: Fix comment formatting
  test: ext4l: Handle variable console output in tests
  ext4l: Add open/read/close directory
  ext4l: Add exists() support
  ext4l: Add size() support
  ext4l: Add read() support
  ext4l: Add uuid() support
  fs: Add statfs method to the filesystem interface
  cmd: Add fsinfo command
  fs: ext4l: Add statfs support

 CLAUDE.md                           |   2 +
 arch/sandbox/include/asm/system.h   |  10 +-
 cmd/Kconfig                         |  11 +
 cmd/fs.c                            |  14 ++
 doc/usage/cmd/fsinfo.rst            |  53 +++++
 doc/usage/index.rst                 |   1 +
 fs/ext4l/ext4_uboot.h               |  16 +-
 fs/ext4l/interface.c                | 352 ++++++++++++++++++++++++++++
 fs/fs_legacy.c                      |  81 ++++++-
 include/ext4l.h                     |  77 ++++++
 include/fs_cmd.h                    |  11 +
 include/fs_legacy.h                 |  21 ++
 include/linux/buffer_head.h         |   5 +-
 include/linux/fs.h                  |   1 +
 test/fs/ext4l.c                     | 300 +++++++++++++++++++++++-
 test/py/tests/test_fs/test_ext4l.py |  64 ++++-
 tools/buildman/func_test.py         |   8 +-
 17 files changed, 998 insertions(+), 29 deletions(-)
 create mode 100644 doc/usage/cmd/fsinfo.rst