[RFC PATCH v4 0/8] ext4: tests for the dirdata feature (encryption+casefold, LUFID)
Artem Blagodarenko <[email protected]> Mon, 27 Jul 2026 17:13:32 -0400
| Newsgroups | org.kernel.vger.linux-ext4 |
|---|---|
| Message-ID | <[email protected]> |
These tests cover the ext4 "dirdata" feature (storing extra metadata
in directory entries beyond the file name), sent separately from the
kernel and e2fsprogs dirdata patch series for reference and review.
The companion kernel series is:
[PATCH v6 00/11] Data in direntry (dirdata) feature
ext4/064 and ext4/065 verify that encryption and case-insensitive
(casefold) directories continue to work both without and with
dirdata enabled. ext4/066 and ext4/067 exercise the LUFID (Locally
Unique File ID) use of dirdata via a new EXT4_IOC_SET_LUFID ioctl,
using a small set_lufid helper utility added in this series.
ext4/068 verifies that LUFID is correctly carried through overwrite
rename and RENAME_EXCHANGE. ext4/069 covers LUFID in inline_data
directories.
Changes in v4:
- Added ext4/068: two-part rename test (overwrite rename and
RENAME_EXCHANGE) that verifies the destination directory slot
carries the source inode's LUFID after the rename, not the stale
LUFID of the replaced inode. Tests the fix in ext4_setent() that
copies the LUFID dirdata payload through rename.
- Added ext4/069: inline_data directory regression test. Verifies
that a LUFID set via EXT4_IOC_SET_LUFID on an entry in an
inline_data directory survives to disk. Catches the bug where
ext4_add_dirent_to_inline() was passing NULL instead of dfid,
silently losing the LUFID.
- Expanded _dump_dir_structure() in common/ext4 to match directory
entries by inode number instead of filename when the directory is
encrypted (ciphertext names on disk do not match the plaintext
filenames visible through the VFS).
- Minor updates to ext4/065 to use the improved helper and add
verification of the fid= field in the encrypted+dirdata case.
Artem Blagodarenko (7):
ext4: add common helper to check whether dirdata is applied
ext4/064 encryption + casefold feature combination WITHOUT dirdata
ext4/065 encryption + casefold + dirdata feature combination
ext4: add set_lufid utility
ext4/066: verify LUFID dirdata operations
ext4/067: LUFID and encryption+casefold+dirdata
ext4/068: test LUFID is carried through overwrite rename and
RENAME_EXCHANGE
Lustre Development (1):
ext4/069: test LUFID in inline_data directory entries
common/config | 1 +
common/ext4 | 63 ++++++++++++
src/Makefile | 2 +-
src/set_lufid.c | 196 +++++++++++++++++++++++++++++++++++
tests/ext4/064 | 153 +++++++++++++++++++++++++++
tests/ext4/064.out | 17 +++
tests/ext4/065 | 252 +++++++++++++++++++++++++++++++++++++++++++++
tests/ext4/065.out | 26 +++++
tests/ext4/066 | 159 ++++++++++++++++++++++++++++
tests/ext4/066.out | 4 +
tests/ext4/067 | 137 ++++++++++++++++++++++++
tests/ext4/067.out | 4 +
tests/ext4/068 | 202 ++++++++++++++++++++++++++++++++++++
tests/ext4/068.out | 5 +
tests/ext4/069 | 164 +++++++++++++++++++++++++++++
tests/ext4/069.out | 7 ++
16 files changed, 1391 insertions(+), 1 deletion(-)
create mode 100644 src/set_lufid.c
create mode 100755 tests/ext4/064
create mode 100644 tests/ext4/064.out
create mode 100755 tests/ext4/065
create mode 100644 tests/ext4/065.out
create mode 100755 tests/ext4/066
create mode 100644 tests/ext4/066.out
create mode 100755 tests/ext4/067
create mode 100644 tests/ext4/067.out
create mode 100755 tests/ext4/068
create mode 100644 tests/ext4/068.out
create mode 100755 tests/ext4/069
create mode 100644 tests/ext4/069.out
--
2.43.7