erofs: remove unused device mapping in meta routine
authorJingbo Xu <jefflexu@linux.alibaba.com>
Thu, 9 Feb 2023 06:39:10 +0000 (14:39 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Wed, 15 Feb 2023 00:11:27 +0000 (08:11 +0800)
Currently metadata is always on bootstrap, and thus device mapping is
not needed so far.  Remove the redundant device mapping in the meta
routine.

Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Jia Zhu <zhujia.zj@bytedance.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20230209063913.46341-2-jefflexu@linux.alibaba.com
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/fscache.c

index c47cc8b..9658cf8 100644 (file)
@@ -164,18 +164,8 @@ static int erofs_fscache_read_folios_async(struct fscache_cookie *cookie,
 static int erofs_fscache_meta_read_folio(struct file *data, struct folio *folio)
 {
        int ret;
-       struct super_block *sb = folio_mapping(folio)->host->i_sb;
+       struct erofs_fscache *ctx = folio_mapping(folio)->host->i_private;
        struct erofs_fscache_request *req;
-       struct erofs_map_dev mdev = {
-               .m_deviceid = 0,
-               .m_pa = folio_pos(folio),
-       };
-
-       ret = erofs_map_dev(sb, &mdev);
-       if (ret) {
-               folio_unlock(folio);
-               return ret;
-       }
 
        req = erofs_fscache_req_alloc(folio_mapping(folio),
                                folio_pos(folio), folio_size(folio));
@@ -184,8 +174,8 @@ static int erofs_fscache_meta_read_folio(struct file *data, struct folio *folio)
                return PTR_ERR(req);
        }
 
-       ret = erofs_fscache_read_folios_async(mdev.m_fscache->cookie,
-                               req, mdev.m_pa, folio_size(folio));
+       ret = erofs_fscache_read_folios_async(ctx->cookie, req,
+                               folio_pos(folio), folio_size(folio));
        if (ret)
                req->error = ret;
 
@@ -469,6 +459,7 @@ struct erofs_fscache *erofs_fscache_acquire_cookie(struct super_block *sb,
                inode->i_size = OFFSET_MAX;
                inode->i_mapping->a_ops = &erofs_fscache_meta_aops;
                mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS);
+               inode->i_private = ctx;
 
                ctx->inode = inode;
        }