On 2022/9/12 10:30, Jason Yan wrote:
On 2022/9/8 16:56, Ritesh Harjani (IBM) wrote:
On 22/09/03 11:01AM, Jason Yan wrote:
Factor out ext4_encoding_init(). No functional change.
Signed-off-by: Jason Yan <yanaijie@xxxxxxxxxx>
Reviewed-by: Jan Kara <jack@xxxxxxx>
---
fs/ext4/super.c | 80 +++++++++++++++++++++++++++----------------------
1 file changed, 44 insertions(+), 36 deletions(-)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index f8806226b796..67972b0218c0 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4521,6 +4521,48 @@ static int ext4_inode_info_init(struct
super_block *sb,
return 0;
}
+static int ext4_encoding_init(struct super_block *sb, struct
ext4_super_block *es)
+{
+#if IS_ENABLED(CONFIG_UNICODE)
How about simplying it like below.
if (!IS_ENABLED(CONFIG_UNICODE))
return 0;
<...>
Then we don't need #ifdef CONFIG_UNICODE
Nice idea. Will update.
Sorry I tried to compile with this change but the compiler is not clever
enough to ignore the code down if CONFIG_UNICODE is not enabled.
fs/ext4/super.c: In function ‘ext4_encoding_init’:
fs/ext4/super.c:4529:2: warning: ISO C90 forbids mixed declarations and
code [-Wdeclaration-after-statement]
4529 | const struct ext4_sb_encodings *encoding_info;
| ^~~~~
fs/ext4/super.c:4533:42: error: ‘struct super_block’ has no member named
‘s_encoding’
4533 | if (!ext4_has_feature_casefold(sb) || sb->s_encoding)
| ^~
fs/ext4/super.c:4536:18: error: implicit declaration of function
‘ext4_sb_read_encoding’; did you mean ‘ext4_sb_bread_unmovable’?
[-Werror=implicit-function-declaration]
4536 | encoding_info = ext4_sb_read_encoding(es);
| ^~~~~~~~~~~~~~~~~~~~~
| ext4_sb_bread_unmovable
fs/ext4/super.c:4536:16: warning: assignment to ‘const struct
ext4_sb_encodings *’ from ‘int’ makes pointer from integer without a
cast [-Wint-conversion]
4536 | encoding_info = ext4_sb_read_encoding(es);
| ^
fs/ext4/super.c:4543:36: error: dereferencing pointer to incomplete type
‘const struct ext4_sb_encodings’
4543 | encoding = utf8_load(encoding_info->version);
| ^~
fs/ext4/super.c:4562:4: error: ‘struct super_block’ has no member named
‘s_encoding’
4562 | sb->s_encoding = encoding;
| ^~
fs/ext4/super.c:4563:4: error: ‘struct super_block’ has no member named
‘s_encoding_flags’
4563 | sb->s_encoding_flags = encoding_flags;
| ^~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:249: fs/ext4/super.o] Error 1
make[1]: *** [scripts/Makefile.build:465: fs/ext4] Error 2
make: *** [Makefile:1852: fs] Error 2
Thanks
Jason
.