The following changes since commit dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258: Linux 5.8-rc4 (2020-07-05 16:20:22 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/fs/fscrypt/fscrypt.git tags/fscrypt-for-linus for you to fetch changes up to 55e32c54bbd5741cad462c9ee00c453c72fa74b9: fscrypt: don't load ->i_crypt_info before it's known to be valid (2020-07-30 14:21:50 -0700) ---------------------------------------------------------------- This release, we add support for inline encryption via the blk-crypto framework which was added in 5.8. Now when an ext4 or f2fs filesystem is mounted with '-o inlinecrypt', the contents of encrypted files will be encrypted/decrypted via blk-crypto, instead of directly using the crypto API. This model allows taking advantage of the inline encryption hardware that is integrated into the UFS or eMMC host controllers on most mobile SoCs. Note that this is just an alternate implementation; the ciphertext written to disk stays the same. (This pull request does *not* include support for direct I/O on encrypted files, which blk-crypto makes possible, since that part is still being discussed.) Besides the above feature update, there are also a few fixes and cleanups, e.g. strengthening some memory barriers that may be too weak. All these patches have been in linux-next with no reported issues. I've also tested them with the fscrypt xfstests, as usual. It's also been tested that the inline encryption support works with the support for Qualcomm and Mediatek inline encryption hardware that will be in the scsi pull request for 5.9. Also, several SoC vendors are already using a previous, functionally equivalent version of these patches. ---------------------------------------------------------------- Eric Biggers (9): ext4: add inline encryption support fscrypt: add comments that describe the HKDF info strings fscrypt: rename FS_KEY_DERIVATION_NONCE_SIZE fscrypt: restrict IV_INO_LBLK_* to AES-256-XTS fscrypt: switch fscrypt_do_sha256() to use the SHA-256 library fscrypt: use smp_load_acquire() for fscrypt_prepared_key fscrypt: use smp_load_acquire() for ->s_master_keys fscrypt: use smp_load_acquire() for ->i_crypt_info fscrypt: don't load ->i_crypt_info before it's known to be valid Satya Tangirala (4): fs: introduce SB_INLINECRYPT fscrypt: add inline encryption support f2fs: add inline encryption support fscrypt: document inline encryption support Documentation/admin-guide/ext4.rst | 7 + Documentation/filesystems/f2fs.rst | 7 + Documentation/filesystems/fscrypt.rst | 25 ++- fs/buffer.c | 7 +- fs/crypto/Kconfig | 8 +- fs/crypto/Makefile | 1 + fs/crypto/bio.c | 51 +++++ fs/crypto/crypto.c | 4 +- fs/crypto/fname.c | 45 ++--- fs/crypto/fscrypt_private.h | 144 ++++++++++--- fs/crypto/inline_crypt.c | 367 ++++++++++++++++++++++++++++++++++ fs/crypto/keyring.c | 21 +- fs/crypto/keysetup.c | 91 ++++++--- fs/crypto/keysetup_v1.c | 20 +- fs/crypto/policy.c | 20 +- fs/ext4/inode.c | 4 +- fs/ext4/page-io.c | 6 +- fs/ext4/readpage.c | 11 +- fs/ext4/super.c | 12 ++ fs/f2fs/compress.c | 2 +- fs/f2fs/data.c | 79 ++++++-- fs/f2fs/super.c | 35 ++++ include/linux/fs.h | 1 + include/linux/fscrypt.h | 111 +++++++++- 24 files changed, 940 insertions(+), 139 deletions(-) create mode 100644 fs/crypto/inline_crypt.c