
This series adds support for the creation of symbolic links on ext4 file-systems. The motivation behind this work is to have the ability to "do" the job of update-alternatives in u-boot. Firmware on TI's platform are usually managed with update-alternatives and are thus targeted by a symbolic link. In some situations we need the ability to select an alternate firmware before the linux kernel is started so that when a early driver needing the firmware comes up, it can be fed the firmware of our choice.
Tested on a am57xx_evm, using a EXT4 partition on external SDcard. The filesystem can be checked later with: fsck.ext4 -f <dev>
usage example: => ln mmc 0:2 zImage /boot/the_linux_kernel
Changes in v5: - Added filesystem integrity checks - Fix bug in ext4fs_delete_file(). The type must be read from the inode.
Changes in v4: - replaced u64 and u32 with uint64_t and uint32_t
Changes in v3: - reworded commit log - removed FS integrity test (fsck) in python tests
Changes in v2: - Prevent write access if metadata checksum is enabled - Fix issue in ext4fs_delete_file() when target in not stored in an allocated block - Added python tests for symlinks under sandbox
Jean-Jacques Hiblot (7): fs: ext4: do not allow writes if metadata checksum is active test: fs: disable the metadata checksums on ext4 filesystems test: fs: Add filesystem integrity checks fs: ext4: constify the buffer passed to write functions fs: ext4: Add support for the creation of symbolic links fs: Add a new command to create symbolic links test: fs: Added tests for symlinks
cmd/fs.c | 14 +++ fs/ext4/ext4_common.c | 4 +- fs/ext4/ext4_common.h | 2 +- fs/ext4/ext4_write.c | 72 ++++++++++--- fs/fs.c | 44 ++++++++ include/ext4fs.h | 6 +- include/fs.h | 2 + test/py/tests/test_fs/conftest.py | 77 ++++++++++++++ test/py/tests/test_fs/fstest_defs.py | 3 + test/py/tests/test_fs/fstest_helpers.py | 15 +++ test/py/tests/test_fs/test_basic.py | 4 + test/py/tests/test_fs/test_ext.py | 10 ++ test/py/tests/test_fs/test_mkdir.py | 8 ++ test/py/tests/test_fs/test_symlink.py | 130 ++++++++++++++++++++++++ test/py/tests/test_fs/test_unlink.py | 14 ++- 15 files changed, 382 insertions(+), 23 deletions(-) create mode 100644 test/py/tests/test_fs/fstest_helpers.py create mode 100644 test/py/tests/test_fs/test_symlink.py