summaryrefslogtreecommitdiff
path: root/fs/ubifs
diff options
context:
space:
mode:
authorDaniel Rosenberg <drosen@google.com>2020-11-19 06:09:03 +0000
committerJaegeuk Kim <jaegeuk@kernel.org>2020-12-02 22:00:21 -0800
commitbb9cd9106b22b4fc5ff8d78a752be8a4ba2cbba5 (patch)
tree1a50923d6b88ef741f652302c46b1c0ca3f0d603 /fs/ubifs
parent608af703519a58f5a7da4273809211cac27edfb2 (diff)
downloadlwn-bb9cd9106b22b4fc5ff8d78a752be8a4ba2cbba5.tar.gz
lwn-bb9cd9106b22b4fc5ff8d78a752be8a4ba2cbba5.zip
fscrypt: Have filesystems handle their d_ops
This shifts the responsibility of setting up dentry operations from fscrypt to the individual filesystems, allowing them to have their own operations while still setting fscrypt's d_revalidate as appropriate. Most filesystems can just use generic_set_encrypted_ci_d_ops, unless they have their own specific dentry operations as well. That operation will set the minimal d_ops required under the circumstances. Since the fscrypt d_ops are set later on, we must set all d_ops there, since we cannot adjust those later on. This should not result in any change in behavior. Signed-off-by: Daniel Rosenberg <drosen@google.com> Acked-by: Theodore Ts'o <tytso@mit.edu> Acked-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/ubifs')
-rw-r--r--fs/ubifs/dir.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 155521e51ac5..7a920434d741 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -203,6 +203,7 @@ static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry,
dbg_gen("'%pd' in dir ino %lu", dentry, dir->i_ino);
err = fscrypt_prepare_lookup(dir, dentry, &nm);
+ generic_set_encrypted_ci_d_ops(dentry);
if (err == -ENOENT)
return d_splice_alias(NULL, dentry);
if (err)