ext4: disable fast-commit of encrypted dir operations
authorEric Biggers <ebiggers@kernel.org>
Thu, 5 Jan 2023 07:13:55 +0000 (23:13 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 10:59:04 +0000 (11:59 +0100)
commit6482d42baff5626299e90bc1d5ca28c08ddd1e0f
tree5ae9bdeac410f6c869e81c37e4b54a4e0f74eea8
parent6969367c1500c15eddc38fda12f6d15518ad6d03
ext4: disable fast-commit of encrypted dir operations

From: Eric Biggers <ebiggers@google.com>

commit 0fbcb5251fc81b58969b272c4fb7374a7b922e3e upstream.

fast-commit of create, link, and unlink operations in encrypted
directories is completely broken because the unencrypted filenames are
being written to the fast-commit journal instead of the encrypted
filenames.  These operations can't be replayed, as encryption keys
aren't present at journal replay time.  It is also an information leak.

Until if/when we can get this working properly, make encrypted directory
operations ineligible for fast-commit.

Note that fast-commit operations on encrypted regular files continue to
be allowed, as they seem to work.

Fixes: aa75f4d3daae ("ext4: main fast-commit commit path")
Cc: <stable@vger.kernel.org> # v5.10+
Signed-off-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20221106224841.279231-2-ebiggers@kernel.org
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/fast_commit.c
fs/ext4/fast_commit.h
include/trace/events/ext4.h