On Wed, Dec 30, 2020 at 08:02:52AM -0500, Sasha Levin wrote:
From: Daniel Rosenberg <drosen@xxxxxxxxxx>
[ Upstream commit 7ad08a58bf67594057362e45cbddd3e27e53e557 ]
Expand f2fs's casefolding support to include encrypted directories. To
index casefolded+encrypted directories, we use the SipHash of the
casefolded name, keyed by a key derived from the directory's fscrypt
master key. This ensures that the dirhash doesn't leak information
about the plaintext filenames.
Encryption keys are unavailable during roll-forward recovery, so we
can't compute the dirhash when recovering a new dentry in an encrypted +
casefolded directory. To avoid having to force a checkpoint when a new
file is fsync'ed, store the dirhash on-disk appended to i_name.
This patch incorporates work by Eric Biggers <ebiggers@xxxxxxxxxx>
and Jaegeuk Kim <jaegeuk@xxxxxxxxxx>.
Co-developed-by: Eric Biggers <ebiggers@xxxxxxxxxx>
Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx>
Signed-off-by: Daniel Rosenberg <drosen@xxxxxxxxxx>
Reviewed-by: Eric Biggers <ebiggers@xxxxxxxxxx>
Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
Please don't backport this to the LTS kernels. This is a new feature, not a
fix, and you missed prerequisite patches...