OSDN Git Service

fscrypt: export fscrypt_d_revalidate()
authorEric Biggers <ebiggers@google.com>
Thu, 24 Sep 2020 05:47:21 +0000 (22:47 -0700)
committerEric Biggers <ebiggers@google.com>
Mon, 28 Sep 2020 21:44:51 +0000 (14:44 -0700)
commit5b2a828b98ec1872799b1b4d82113c76a12d594f
tree4241d7eb47dede9cb86afcca4de7d6bb3b5297ca
parent501e43fbea468fa93c1dff0ee744e69303ef5a43
fscrypt: export fscrypt_d_revalidate()

Dentries that represent no-key names must have a dentry_operations that
includes fscrypt_d_revalidate().  Currently, this is handled by
fscrypt_prepare_lookup() installing fscrypt_d_ops.

However, ceph support for encryption
(https://lore.kernel.org/r/20200914191707.380444-1-jlayton@kernel.org)
can't use fscrypt_d_ops, since ceph already has its own
dentry_operations.

Similarly, ext4 and f2fs support for directories that are both encrypted
and casefolded
(https://lore.kernel.org/r/20200923010151.69506-1-drosen@google.com)
can't use fscrypt_d_ops either, since casefolding requires some dentry
operations too.

To satisfy both users, we need to move the responsibility of installing
the dentry_operations to filesystems.

In preparation for this, export fscrypt_d_revalidate() and give it a
!CONFIG_FS_ENCRYPTION stub.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Link: https://lore.kernel.org/r/20200924054721.187797-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/crypto/fname.c
include/linux/fscrypt.h