mbox series

[4.19,0/5] backport some more fscrypt fixes to 4.19

Message ID 20201031220553.1085782-1-ebiggers@kernel.org
Headers show
Series backport some more fscrypt fixes to 4.19 | expand

Message

Eric Biggers Oct. 31, 2020, 10:05 p.m. UTC
Backport some fscrypt fixes from upstream 5.2 to 4.19-stable.

This is needed to get 'kvm-xfstests -c ext4,f2fs,ubifs -g encrypt' to
fully pass on 4.19-stable.  Before, generic/397 and generic/429 failed
on UBIFS due to missing "fscrypt: fix race where ->lookup() marks
plaintext dentry as ciphertext".

This also fixes some bugs that aren't yet covered by the xfstests.
E.g., "fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing
directory" fixes a bug that caused real-world problems on Chrome OS.

Some relatively straightforward adjustments were needed to the patches,
mainly due to the refactoring of fscrypt.h that was done in 5.1.

Eric Biggers (5):
  fscrypt: clean up and improve dentry revalidation
  fscrypt: fix race allowing rename() and link() of ciphertext dentries
  fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory
  fscrypt: only set dentry_operations on ciphertext dentries
  fscrypt: fix race where ->lookup() marks plaintext dentry as
    ciphertext

 fs/crypto/crypto.c              | 58 +++++++++++++------------
 fs/crypto/fname.c               |  1 +
 fs/crypto/hooks.c               | 28 ++++++++----
 fs/dcache.c                     | 15 +++++++
 fs/ext4/ext4.h                  | 62 ++++++++++++++++++++-------
 fs/ext4/namei.c                 | 76 ++++++++++++++++++++++-----------
 fs/f2fs/namei.c                 | 17 +++++---
 fs/ubifs/dir.c                  |  8 ++--
 include/linux/dcache.h          |  2 +-
 include/linux/fscrypt.h         | 30 +++++++------
 include/linux/fscrypt_notsupp.h |  9 ++--
 include/linux/fscrypt_supp.h    |  6 ++-
 12 files changed, 205 insertions(+), 107 deletions(-)

Comments

Greg KH Nov. 1, 2020, 10:39 a.m. UTC | #1
On Sat, Oct 31, 2020 at 03:05:48PM -0700, Eric Biggers wrote:
> Backport some fscrypt fixes from upstream 5.2 to 4.19-stable.
> 
> This is needed to get 'kvm-xfstests -c ext4,f2fs,ubifs -g encrypt' to
> fully pass on 4.19-stable.  Before, generic/397 and generic/429 failed
> on UBIFS due to missing "fscrypt: fix race where ->lookup() marks
> plaintext dentry as ciphertext".
> 
> This also fixes some bugs that aren't yet covered by the xfstests.
> E.g., "fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing
> directory" fixes a bug that caused real-world problems on Chrome OS.
> 
> Some relatively straightforward adjustments were needed to the patches,
> mainly due to the refactoring of fscrypt.h that was done in 5.1.

All now queued up, thanks!

greg k-h