f2fs: Move CONFIG_UNICODE defguards into the code flow
Instead of a bunch of ifdefs, make the unicode built checks part of the code flow where possible, as requested by Torvalds. Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> [eugen.hristev@collabora.com: port to 6.10-rc1] Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com> Link: https://lore.kernel.org/r/20240606073353.47130-8-eugen.hristev@collabora.com Reviewed-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
committed by
Christian Brauner
parent
d98c822232
commit
28add38d54
@@ -576,8 +576,7 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
|
||||
goto out_iput;
|
||||
}
|
||||
out_splice:
|
||||
#if IS_ENABLED(CONFIG_UNICODE)
|
||||
if (!inode && IS_CASEFOLDED(dir)) {
|
||||
if (IS_ENABLED(CONFIG_UNICODE) && !inode && IS_CASEFOLDED(dir)) {
|
||||
/* Eventually we want to call d_add_ci(dentry, NULL)
|
||||
* for negative dentries in the encoding case as
|
||||
* well. For now, prevent the negative dentry
|
||||
@@ -586,7 +585,7 @@ out_splice:
|
||||
trace_f2fs_lookup_end(dir, dentry, ino, err);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
new = d_splice_alias(inode, dentry);
|
||||
trace_f2fs_lookup_end(dir, !IS_ERR_OR_NULL(new) ? new : dentry,
|
||||
ino, IS_ERR(new) ? PTR_ERR(new) : err);
|
||||
@@ -639,16 +638,15 @@ static int f2fs_unlink(struct inode *dir, struct dentry *dentry)
|
||||
f2fs_delete_entry(de, page, dir, inode);
|
||||
f2fs_unlock_op(sbi);
|
||||
|
||||
#if IS_ENABLED(CONFIG_UNICODE)
|
||||
/* VFS negative dentries are incompatible with Encoding and
|
||||
* Case-insensitiveness. Eventually we'll want avoid
|
||||
* invalidating the dentries here, alongside with returning the
|
||||
* negative dentries at f2fs_lookup(), when it is better
|
||||
* supported by the VFS for the CI case.
|
||||
*/
|
||||
if (IS_CASEFOLDED(dir))
|
||||
if (IS_ENABLED(CONFIG_UNICODE) && IS_CASEFOLDED(dir))
|
||||
d_invalidate(dentry);
|
||||
#endif
|
||||
|
||||
if (IS_DIRSYNC(dir))
|
||||
f2fs_sync_fs(sbi->sb, 1);
|
||||
fail:
|
||||
|
||||
@@ -321,7 +321,7 @@ struct kmem_cache *f2fs_cf_name_slab;
|
||||
static int __init f2fs_create_casefold_cache(void)
|
||||
{
|
||||
f2fs_cf_name_slab = f2fs_kmem_cache_create("f2fs_casefolded_name",
|
||||
F2FS_NAME_LEN);
|
||||
F2FS_NAME_LEN);
|
||||
return f2fs_cf_name_slab ? 0 : -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -1326,13 +1326,13 @@ default_check:
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
#if !IS_ENABLED(CONFIG_UNICODE)
|
||||
if (f2fs_sb_has_casefold(sbi)) {
|
||||
|
||||
if (!IS_ENABLED(CONFIG_UNICODE) && f2fs_sb_has_casefold(sbi)) {
|
||||
f2fs_err(sbi,
|
||||
"Filesystem with casefold feature cannot be mounted without CONFIG_UNICODE");
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The BLKZONED feature indicates that the drive was formatted with
|
||||
* zone alignment optimization. This is optional for host-aware
|
||||
|
||||
Reference in New Issue
Block a user