[GIT PULL] fscrypt updates for 5.9

Eric Biggers ebiggers at kernel.org
Mon Aug 3 03:05:47 EDT 2020


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



More information about the linux-mtd mailing list