erofs: get rid of kaddr in `struct z_erofs_maprecorder`
authorGao Xiang <hsiangkao@linux.alibaba.com>
Thu, 10 Oct 2024 23:58:30 +0000 (07:58 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 11 Oct 2024 05:36:58 +0000 (13:36 +0800)
`kaddr` becomes useless after switching to metabuf.

Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20241010235830.1535616-1-hsiangkao@linux.alibaba.com
fs/erofs/zmap.c

index e980e29..37516d7 100644 (file)
@@ -10,8 +10,6 @@
 struct z_erofs_maprecorder {
        struct inode *inode;
        struct erofs_map_blocks *map;
-       void *kaddr;
-
        unsigned long lcn;
        /* compression extent information gathered */
        u8  type, headtype;
@@ -33,14 +31,11 @@ static int z_erofs_load_full_lcluster(struct z_erofs_maprecorder *m,
        struct z_erofs_lcluster_index *di;
        unsigned int advise;
 
-       m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb,
-                                     pos, EROFS_KMAP);
-       if (IS_ERR(m->kaddr))
-               return PTR_ERR(m->kaddr);
-
-       m->nextpackoff = pos + sizeof(struct z_erofs_lcluster_index);
+       di = erofs_read_metabuf(&m->map->buf, inode->i_sb, pos, EROFS_KMAP);
+       if (IS_ERR(di))
+               return PTR_ERR(di);
        m->lcn = lcn;
-       di = m->kaddr;
+       m->nextpackoff = pos + sizeof(struct z_erofs_lcluster_index);
 
        advise = le16_to_cpu(di->di_advise);
        m->type = advise & Z_EROFS_LI_LCLUSTER_TYPE_MASK;
@@ -53,8 +48,7 @@ static int z_erofs_load_full_lcluster(struct z_erofs_maprecorder *m,
                                DBG_BUGON(1);
                                return -EFSCORRUPTED;
                        }
-                       m->compressedblks = m->delta[0] &
-                               ~Z_EROFS_LI_D0_CBLKCNT;
+                       m->compressedblks = m->delta[0] & ~Z_EROFS_LI_D0_CBLKCNT;
                        m->delta[0] = 1;
                }
                m->delta[1] = le16_to_cpu(di->di_u.delta[1]);
@@ -110,9 +104,9 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m,
        struct erofs_inode *const vi = EROFS_I(m->inode);
        const unsigned int lclusterbits = vi->z_logical_clusterbits;
        unsigned int vcnt, lo, lobits, encodebits, nblk, bytes;
-       int i;
-       u8 *in, type;
        bool big_pcluster;
+       u8 *in, type;
+       int i;
 
        if (1 << amortizedshift == 4 && lclusterbits <= 14)
                vcnt = 2;
@@ -121,6 +115,10 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m,
        else
                return -EOPNOTSUPP;
 
+       in = erofs_read_metabuf(&m->map->buf, m->inode->i_sb, pos, EROFS_KMAP);
+       if (IS_ERR(in))
+               return PTR_ERR(in);
+
        /* it doesn't equal to round_up(..) */
        m->nextpackoff = round_down(pos, vcnt << amortizedshift) +
                         (vcnt << amortizedshift);
@@ -128,9 +126,7 @@ static int unpack_compacted_index(struct z_erofs_maprecorder *m,
        lobits = max(lclusterbits, ilog2(Z_EROFS_LI_D0_CBLKCNT) + 1U);
        encodebits = ((vcnt << amortizedshift) - sizeof(__le32)) * 8 / vcnt;
        bytes = pos & ((vcnt << amortizedshift) - 1);
-
-       in = m->kaddr - bytes;
-
+       in -= bytes;
        i = bytes >> amortizedshift;
 
        lo = decode_compactedbits(lobits, in, encodebits * i, &type);
@@ -255,10 +251,6 @@ static int z_erofs_load_compact_lcluster(struct z_erofs_maprecorder *m,
        amortizedshift = 2;
 out:
        pos += lcn * (1 << amortizedshift);
-       m->kaddr = erofs_read_metabuf(&m->map->buf, inode->i_sb,
-                                     pos, EROFS_KMAP);
-       if (IS_ERR(m->kaddr))
-               return PTR_ERR(m->kaddr);
        return unpack_compacted_index(m, amortizedshift, pos, lookahead);
 }