Re: [PATCH v2 07/13] ext4: factor out ext4_encoding_init()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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
.






[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux