From: Simon Glass <simon.glass@canonical.com> This series adds write support to the new ext4l filesystem driver, supporting file creation, modification, and deletion. The main additions are: - File write with journalling support - File deletion (unlink) - Directory creation (mkdir) - Symbolic link creation (ln) - File and directory rename Infrastructure improvements include proper cleanup of journal references when unmounting, safeguards to handle probe without explicit close, and prevention of use-after-free issues with buffer_heads that have active journal_heads. The series also enables ext4l for sandbox testing and allows the use of metadata_csum checksums which the existing ext4 driver does not support. Some other tweaks are included: - a fix for mcheck to avoid filling up pre-relocation malloc() - use the correct logo for readthedocs - add a flag to avoid using the video console in tests - a fallback option for finding persistent data-dir At this point ext4l is useable, but there is more work needed, including: - Add MAINTAINERS entry - Add more Kconfig options for various features (to reduce code size) - Enable for ARM and x86 targets - Documentation - Tests for failure cases (to check that the journal is doing its job) Simon Glass (26): sandbox: os: Check executable directory for persistent files sandbox: Add --quiet_vidconsole option to speed up output doc: Correct the U-Boot logo blkmap: Handle read-only slices in write path mcheck: Add Kconfig option for caller string length mcheck: Skip mcheck overhead for pre-relocation allocations Revert "lib: Add CONFIG_LIB_KMEM_CACHE for full kmem_cache support" ext4l: Move message buffer functions to support.c ext4l: Add inode-tracking lists ext4l: Fix a few problems with handling bh_cache ext4l: Clean up fully when unmounting ext4l: Remove duplicate atomic_add declarations ext4l: Use the real crc16 implementation ext4l: Add a few Kconfig dependencies ext4l: Add bh_cache_release_jbd() to clean up journal references ext4l: Add safeguard to close previous mount in probe ext4l: Prevent freeing buffer_heads with active journal_heads ext4l: Add support for read-only devices ext4l: Add write support ext4l: Add unlink support for file deletion ext4l: Add mkdir support for directory creation ext4l: Add symlink support ext4l: Update symlink to replace existing files ext4l: Add rename support test: fs_helper: Keep metadata_csum enabled for ext4l sandbox: Enable CONFIG_FS_EXT4L Kconfig | 11 + arch/sandbox/cpu/os.c | 27 +- arch/sandbox/cpu/start.c | 10 + arch/sandbox/include/asm/state.h | 1 + board/sandbox/sandbox.c | 16 + common/dlmalloc.c | 33 +- common/mcheck_core.inc.h | 5 +- configs/sandbox_defconfig | 2 + doc/arch/sandbox/sandbox.rst | 7 + doc/conf.py | 2 +- drivers/block/blkmap.c | 3 + fs/ext4l/Kconfig | 3 + fs/ext4l/ext4.h | 6 + fs/ext4l/ext4_uboot.h | 32 +- fs/ext4l/interface.c | 679 ++++++++++++++++++++++++++-- fs/ext4l/stub.c | 8 +- fs/ext4l/super.c | 25 +- fs/ext4l/support.c | 130 +++++- fs/fs_legacy.c | 10 +- include/ext4l.h | 67 +++ include/linux/fs.h | 1 + include/linux/slab.h | 27 +- lib/Kconfig | 8 - lib/Makefile | 1 - lib/kmem_cache.c | 20 - test/fs/ext4l.c | 251 ++++++++++ test/py/tests/fs_helper.py | 13 +- test/py/tests/test_event_dump.py | 1 + test/py/tests/test_fs/test_ext4l.py | 25 + tools/logos/u-boot-logo-text.svg | Bin 0 -> 8552 bytes 30 files changed, 1287 insertions(+), 137 deletions(-) delete mode 100644 lib/kmem_cache.c create mode 100644 tools/logos/u-boot-logo-text.svg -- 2.43.0 base-commit: 87b7abb0093eb536cd89fa6dd1b2f5f1049bf708 branch: extl