aboutsummaryrefslogtreecommitdiff
path: root/fs/f2fs
diff options
context:
space:
mode:
authorGravatar Gabriel Krisman Bertazi <krisman@suse.de> 2024-02-21 12:14:10 -0500
committerGravatar Gabriel Krisman Bertazi <krisman@suse.de> 2024-02-27 16:55:35 -0500
commitbe2760a703e6554c2b5784e2fec804284cdcbe4d (patch)
tree94259c9fc47a99ca37af14836b61d0f820b749ce /fs/f2fs
parentext4: Configure dentry operations at dentry-creation time (diff)
downloadlinux-be2760a703e6554c2b5784e2fec804284cdcbe4d.tar.gz
linux-be2760a703e6554c2b5784e2fec804284cdcbe4d.tar.bz2
linux-be2760a703e6554c2b5784e2fec804284cdcbe4d.zip
f2fs: Configure dentry operations at dentry-creation time
This was already the case for case-insensitive before commit bb9cd9106b22 ("fscrypt: Have filesystems handle their d_ops"), but it was changed to set at lookup-time to facilitate the integration with fscrypt. But it's a problem because dentries that don't get created through ->lookup() won't have any visibility of the operations. Since fscrypt now also supports configuring dentry operations at creation-time, do it for any encrypted and/or casefold volume, simplifying the implementation across these features. Reviewed-by: Eric Biggers <ebiggers@google.com> Link: https://lore.kernel.org/r/20240221171412.10710-9-krisman@suse.de Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
Diffstat (limited to 'fs/f2fs')
-rw-r--r--fs/f2fs/namei.c1
-rw-r--r--fs/f2fs/super.c1
2 files changed, 1 insertions, 1 deletions
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index b3bb815fc6aa..f7f63a567d86 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -531,7 +531,6 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
}
err = f2fs_prepare_lookup(dir, dentry, &fname);
- generic_set_encrypted_ci_d_ops(dentry);
if (err == -ENOENT)
goto out_splice;
if (err)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index d00d21a8b53a..313024f5c90c 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -4660,6 +4660,7 @@ try_onemore:
goto free_node_inode;
}
+ generic_set_sb_d_ops(sb);
sb->s_root = d_make_root(root); /* allocate root dentry */
if (!sb->s_root) {
err = -ENOMEM;