]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/staging/erofs/data.c
staging: erofs: clean up erofs_map_blocks_iter
[linux.git] / drivers / staging / erofs / data.c
index 329fa4fa3e9c5f9963dae105f5e5363702881abe..9c471f08ffd4112a97b7ef06897e965ed043a3d8 100644 (file)
@@ -165,37 +165,16 @@ static int erofs_map_blocks_flatmode(struct inode *inode,
        return err;
 }
 
-int erofs_map_blocks_iter(struct inode *inode,
-                         struct erofs_map_blocks *map,
-                         struct page **mpage_ret, int flags)
-{
-       /* by default, reading raw data never use erofs_map_blocks_iter */
-       if (unlikely(!is_inode_layout_compression(inode))) {
-               if (*mpage_ret)
-                       put_page(*mpage_ret);
-               *mpage_ret = NULL;
-
-               return erofs_map_blocks(inode, map, flags);
-       }
-
-#ifdef CONFIG_EROFS_FS_ZIP
-       return z_erofs_map_blocks_iter(inode, map, mpage_ret, flags);
-#else
-       /* data compression is not available */
-       return -ENOTSUPP;
-#endif
-}
-
 int erofs_map_blocks(struct inode *inode,
                     struct erofs_map_blocks *map, int flags)
 {
        if (unlikely(is_inode_layout_compression(inode))) {
-               struct page *mpage = NULL;
-               int err;
+               int err = z_erofs_map_blocks_iter(inode, map, flags);
 
-               err = erofs_map_blocks_iter(inode, map, &mpage, flags);
-               if (mpage)
-                       put_page(mpage);
+               if (map->mpage) {
+                       put_page(map->mpage);
+                       map->mpage = NULL;
+               }
                return err;
        }
        return erofs_map_blocks_flatmode(inode, map, flags);