[U-Boot] [PATCH v5 0/7] Add support for symlink creation in EXT4

Jean-Jacques Hiblot jjhiblot at ti.com
Wed Feb 13 10:48:11 UTC 2019


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                    |  74 +++++++++++---
 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   | 129 ++++++++++++++++++++++++
 test/py/tests/test_fs/test_unlink.py    |  14 ++-
 15 files changed, 382 insertions(+), 24 deletions(-)
 create mode 100644 test/py/tests/test_fs/fstest_helpers.py
 create mode 100644 test/py/tests/test_fs/test_symlink.py

-- 
2.17.1



More information about the U-Boot mailing list