[PATCH v2 0/2] Reconcile Encryption and Casefolding in Ext4

From: Daniel Rosenberg
Date: Fri Mar 19 2021 - 03:35:18 EST


These patches add support for ext4 encryption and casefolding at the same time.
Since the hash for encrypted casefolded directory names cannot be computed
without the key, we need to store the hash on disk. We only do so for encrypted
and casefolded directories to avoid on disk format changes.

e2fsprogs has already been updated with support for casefolding and encryption.

v2 changes:
When checking for 'fake' entries (which do not include the extra hash bytes)
-Check for . and .. using names instead of position
-Check for csum entries via file_type instead of position
-Assume last entry in directory will be csum for __ext4_check_entry if csum enabled

This means we don't need to pass along lblk all over the place

-Don't use siphash value for find_group_orlov, just use regular hash

Daniel Rosenberg (2):
ext4: Handle casefolding with encryption
ext4: Optimize match for casefolded encrypted dirs

Documentation/filesystems/ext4/directory.rst | 27 +++
fs/ext4/dir.c | 37 +++-
fs/ext4/ext4.h | 73 +++++--
fs/ext4/hash.c | 25 ++-
fs/ext4/inline.c | 25 ++-
fs/ext4/namei.c | 213 ++++++++++++++-----
fs/ext4/super.c | 6 -
7 files changed, 303 insertions(+), 103 deletions(-)


base-commit: f296bfd5cd04cbb49b8fc9585adc280ab2b58624
--
2.31.0.rc2.261.g7f71774620-goog