This is a patchset designed to make key setup slightly clearer to me ahead of rearranging it to add extent-based encryption. It is basically a subset of my prior changeset [1] for elegance. The subsequent changes have minor dependencies on it; I can drop this changeset if it's preferable, although I do think it makes everything cleaner. Patchset is built on kdave/misc-next as per base commit and needs a tiny fixup to apply to fscrypt/for-next. It passes ext4/f2fs tests for me. [1] https://lore.kernel.org/linux-fscrypt/cover.1681837335.git.sweettea-kernel@xxxxxxxxxx/ Changelog: v5: - Fixed kernel build robot complaint in patch 3. v4: - https://lore.kernel.org/linux-fscrypt/cover.1687988119.git.sweettea-kernel@xxxxxxxxxx/T/#t Sweet Tea Dorminy (8): fscrypt: move inline crypt decision to info setup fscrypt: split and rename setup_file_encryption_key() fscrypt: split setup_per_mode_enc_key() fscrypt: move dirhash key setup away from IO key setup fscrypt: reduce special-casing of IV_INO_LBLK_32 fscrypt: move all the shared mode key setup deeper fscrypt: make infos have a pointer to prepared keys fscrypt: make prepared keys record their type fs/crypto/crypto.c | 2 +- fs/crypto/fname.c | 4 +- fs/crypto/fscrypt_private.h | 33 +++- fs/crypto/inline_crypt.c | 4 +- fs/crypto/keysetup.c | 375 +++++++++++++++++++++++------------- fs/crypto/keysetup_v1.c | 9 +- 6 files changed, 274 insertions(+), 153 deletions(-) base-commit: e0144e6be2ec62c8d874076a6292a8d83b00ee32 -- 2.40.1