[GIT PULL] fscrypt fix for v5.6-rc6

Eric Biggers
2020-03-11T19:48:51Z

The following changes since commit 98d54f81e36ba3bf92172791eba5ca5bd813989b:

Linux 5.6-rc4 (2020-03-01 16:38:46 -0600)

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 2b4eae95c7361e0a147b838715c8baa1380a428f:

fscrypt: don't evict dirty inodes after removing key (2020-03-07 18:43:07 -0800)

----------------------------------------------------------------

Fix a bug where if userspace is writing to encrypted files while the
FS_IOC_REMOVE_ENCRYPTION_KEY ioctl (introduced in v5.4) is running,
dirty inodes could be evicted, causing writes could be lost or the
filesystem to hang due to a use-after-free. This was encountered during
real-world use, not just theoretical.

Tested with the existing fscrypt xfstests, and with a new xfstest I
wrote to reproduce this bug. This fix does expose an existing bug with
'-o lazytime' that Ted is working on fixing, but this fscrypt fix is
more critical and is needed anyway regardless of the lazytime fix.

----------------------------------------------------------------
Eric Biggers (1):
fscrypt: don't evict dirty inodes after removing key

fs/crypto/keysetup.c | 9 +++++++++
1 file changed, 9 insertions(+)