]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
erofs: get rid of check_layout_compatibility()
authorHongzhen Luo <hongzhen@linux.alibaba.com>
Tue, 6 Aug 2024 11:22:08 +0000 (19:22 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Mon, 19 Aug 2024 03:06:20 +0000 (11:06 +0800)
Simple enough to just open-code it.

Signed-off-by: Hongzhen Luo <hongzhen@linux.alibaba.com>
Reviewed-by: Sandeep Dhavale <dhavale@google.com>
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20240806112208.150323-1-hongzhen@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/super.c

index 32ce5b35e1dff8eb25c199b09f48e1b7797457ab..6cb5c8916174be4ead0500d421da82df985cf5f6 100644 (file)
@@ -108,22 +108,6 @@ static void erofs_free_inode(struct inode *inode)
        kmem_cache_free(erofs_inode_cachep, vi);
 }
 
-static bool check_layout_compatibility(struct super_block *sb,
-                                      struct erofs_super_block *dsb)
-{
-       const unsigned int feature = le32_to_cpu(dsb->feature_incompat);
-
-       EROFS_SB(sb)->feature_incompat = feature;
-
-       /* check if current kernel meets all mandatory requirements */
-       if (feature & (~EROFS_ALL_FEATURE_INCOMPAT)) {
-               erofs_err(sb, "unidentified incompatible feature %x, please upgrade kernel",
-                          feature & ~EROFS_ALL_FEATURE_INCOMPAT);
-               return false;
-       }
-       return true;
-}
-
 /* read variable-sized metadata, offset will be aligned by 4-byte */
 void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf,
                          erofs_off_t *offset, int *lengthp)
@@ -279,7 +263,7 @@ static int erofs_scan_devices(struct super_block *sb,
 
 static int erofs_read_superblock(struct super_block *sb)
 {
-       struct erofs_sb_info *sbi;
+       struct erofs_sb_info *sbi = EROFS_SB(sb);
        struct erofs_buf buf = __EROFS_BUF_INITIALIZER;
        struct erofs_super_block *dsb;
        void *data;
@@ -291,9 +275,7 @@ static int erofs_read_superblock(struct super_block *sb)
                return PTR_ERR(data);
        }
 
-       sbi = EROFS_SB(sb);
        dsb = (struct erofs_super_block *)(data + EROFS_SUPER_OFFSET);
-
        ret = -EINVAL;
        if (le32_to_cpu(dsb->magic) != EROFS_SUPER_MAGIC_V1) {
                erofs_err(sb, "cannot find valid erofs superblock");
@@ -318,8 +300,12 @@ static int erofs_read_superblock(struct super_block *sb)
        }
 
        ret = -EINVAL;
-       if (!check_layout_compatibility(sb, dsb))
+       sbi->feature_incompat = le32_to_cpu(dsb->feature_incompat);
+       if (sbi->feature_incompat & ~EROFS_ALL_FEATURE_INCOMPAT) {
+               erofs_err(sb, "unidentified incompatible feature %x, please upgrade kernel",
+                         sbi->feature_incompat & ~EROFS_ALL_FEATURE_INCOMPAT);
                goto out;
+       }
 
        sbi->sb_size = 128 + dsb->sb_extslots * EROFS_SB_EXTSLOT_SIZE;
        if (sbi->sb_size > PAGE_SIZE - EROFS_SUPER_OFFSET) {