erofs: clean up zmap.c
authorGao Xiang <hsiangkao@linux.alibaba.com>
Thu, 15 Jun 2023 06:44:21 +0000 (14:44 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Thu, 22 Jun 2023 13:16:34 +0000 (21:16 +0800)
Several trivial cleanups which aren't quite necessary to split:

 - Rename lcluster load functions as well as justify full indexes
   since they are typically used for global deduplication for
   compressed data;

 - Avoid unnecessary lines, comments for simplicity.

No logic changes.

Reviewed-by: Guo Xuenan <guoxuenan@huaweicloud.com>
Reviewed-by: Yue Hu <huyue2@coolpad.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20230615064421.103178-1-hsiangkao@linux.alibaba.com
fs/erofs/zmap.c

index 920fb4dbc731c7e94171c556fb2a7ec06d0b951d..1909ddafd9c7957482b451560502f467bfdd1f19 100644 (file)
@@ -22,8 +22,8 @@ struct z_erofs_maprecorder {
        bool partialref;
 };
 
-static int legacy_load_cluster_from_disk(struct z_erofs_maprecorder *m,
-                                        unsigned long lcn)
+static int z_erofs_load_full_lcluster(struct z_erofs_maprecorder *m,
+                                     unsigned long lcn)
 {
        struct inode *const inode = m->inode;
        struct erofs_inode *const vi = EROFS_I(inode);
@@ -226,8 +226,8 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m,
        return 0;
 }
 
-static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m,
-                                           unsigned long lcn, bool lookahead)
+static int z_erofs_load_compact_lcluster(struct z_erofs_maprecorder *m,
+                                        unsigned long lcn, bool lookahead)
 {
        struct inode *const inode = m->inode;
        struct erofs_inode *const vi = EROFS_I(inode);
@@ -277,23 +277,23 @@ out:
        return unpack_compacted_index(m, amortizedshift, pos, lookahead);
 }
 
-static int z_erofs_load_cluster_from_disk(struct z_erofs_maprecorder *m,
-                                         unsigned int lcn, bool lookahead)
+static int z_erofs_load_lcluster_from_disk(struct z_erofs_maprecorder *m,
+                                          unsigned int lcn, bool lookahead)
 {
-       const unsigned int datamode = EROFS_I(m->inode)->datalayout;
-
-       if (datamode == EROFS_INODE_COMPRESSED_FULL)
-               return legacy_load_cluster_from_disk(m, lcn);
-
-       if (datamode == EROFS_INODE_COMPRESSED_COMPACT)
-               return compacted_load_cluster_from_disk(m, lcn, lookahead);
-
-       return -EINVAL;
+       switch (EROFS_I(m->inode)->datalayout) {
+       case EROFS_INODE_COMPRESSED_FULL:
+               return z_erofs_load_full_lcluster(m, lcn);
+       case EROFS_INODE_COMPRESSED_COMPACT:
+               return z_erofs_load_compact_lcluster(m, lcn, lookahead);
+       default:
+               return -EINVAL;
+       }
 }
 
 static int z_erofs_extent_lookback(struct z_erofs_maprecorder *m,
                                   unsigned int lookback_distance)
 {
+       struct super_block *sb = m->inode->i_sb;
        struct erofs_inode *const vi = EROFS_I(m->inode);
        const unsigned int lclusterbits = vi->z_logical_clusterbits;
 
@@ -301,21 +301,15 @@ static int z_erofs_extent_lookback(struct z_erofs_maprecorder *m,
                unsigned long lcn = m->lcn - lookback_distance;
                int err;
 
-               /* load extent head logical cluster if needed */
-               err = z_erofs_load_cluster_from_disk(m, lcn, false);
+               err = z_erofs_load_lcluster_from_disk(m, lcn, false);
                if (err)
                        return err;
 
                switch (m->type) {
                case Z_EROFS_LCLUSTER_TYPE_NONHEAD:
-                       if (!m->delta[0]) {
-                               erofs_err(m->inode->i_sb,
-                                         "invalid lookback distance 0 @ nid %llu",
-                                         vi->nid);
-                               DBG_BUGON(1);
-                               return -EFSCORRUPTED;
-                       }
                        lookback_distance = m->delta[0];
+                       if (!lookback_distance)
+                               goto err_bogus;
                        continue;
                case Z_EROFS_LCLUSTER_TYPE_PLAIN:
                case Z_EROFS_LCLUSTER_TYPE_HEAD1:
@@ -324,16 +318,15 @@ static int z_erofs_extent_lookback(struct z_erofs_maprecorder *m,
                        m->map->m_la = (lcn << lclusterbits) | m->clusterofs;
                        return 0;
                default:
-                       erofs_err(m->inode->i_sb,
-                                 "unknown type %u @ lcn %lu of nid %llu",
+                       erofs_err(sb, "unknown type %u @ lcn %lu of nid %llu",
                                  m->type, lcn, vi->nid);
                        DBG_BUGON(1);
                        return -EOPNOTSUPP;
                }
        }
-
-       erofs_err(m->inode->i_sb, "bogus lookback distance @ nid %llu",
-                 vi->nid);
+err_bogus:
+       erofs_err(sb, "bogus lookback distance %u @ lcn %lu of nid %llu",
+                 lookback_distance, m->lcn, vi->nid);
        DBG_BUGON(1);
        return -EFSCORRUPTED;
 }
@@ -365,7 +358,7 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m,
        if (m->compressedblks)
                goto out;
 
-       err = z_erofs_load_cluster_from_disk(m, lcn, false);
+       err = z_erofs_load_lcluster_from_disk(m, lcn, false);
        if (err)
                return err;
 
@@ -397,9 +390,8 @@ static int z_erofs_get_extent_compressedlen(struct z_erofs_maprecorder *m,
                        break;
                fallthrough;
        default:
-               erofs_err(m->inode->i_sb,
-                         "cannot found CBLKCNT @ lcn %lu of nid %llu",
-                         lcn, vi->nid);
+               erofs_err(sb, "cannot found CBLKCNT @ lcn %lu of nid %llu", lcn,
+                         vi->nid);
                DBG_BUGON(1);
                return -EFSCORRUPTED;
        }
@@ -407,9 +399,7 @@ out:
        map->m_plen = erofs_pos(sb, m->compressedblks);
        return 0;
 err_bonus_cblkcnt:
-       erofs_err(m->inode->i_sb,
-                 "bogus CBLKCNT @ lcn %lu of nid %llu",
-                 lcn, vi->nid);
+       erofs_err(sb, "bogus CBLKCNT @ lcn %lu of nid %llu", lcn, vi->nid);
        DBG_BUGON(1);
        return -EFSCORRUPTED;
 }
@@ -430,7 +420,7 @@ static int z_erofs_get_extent_decompressedlen(struct z_erofs_maprecorder *m)
                        return 0;
                }
 
-               err = z_erofs_load_cluster_from_disk(m, lcn, true);
+               err = z_erofs_load_lcluster_from_disk(m, lcn, true);
                if (err)
                        return err;
 
@@ -477,7 +467,7 @@ static int z_erofs_do_map_blocks(struct inode *inode,
        initial_lcn = ofs >> lclusterbits;
        endoff = ofs & ((1 << lclusterbits) - 1);
 
-       err = z_erofs_load_cluster_from_disk(&m, initial_lcn, false);
+       err = z_erofs_load_lcluster_from_disk(&m, initial_lcn, false);
        if (err)
                goto unmap_out;
 
@@ -535,8 +525,7 @@ static int z_erofs_do_map_blocks(struct inode *inode,
        if (flags & EROFS_GET_BLOCKS_FINDTAIL) {
                vi->z_tailextent_headlcn = m.lcn;
                /* for non-compact indexes, fragmentoff is 64 bits */
-               if (fragment &&
-                   vi->datalayout == EROFS_INODE_COMPRESSED_FULL)
+               if (fragment && vi->datalayout == EROFS_INODE_COMPRESSED_FULL)
                        vi->z_fragmentoff |= (u64)m.pblk << 32;
        }
        if (ztailpacking && m.lcn == vi->z_tailextent_headlcn) {