Merge tag 'for-5.1/block-20190302' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / drivers / staging / erofs / data.c
index 4871ba7..526e0db 100644 (file)
@@ -166,43 +166,16 @@ err_out:
        return err;
 }
 
-#ifdef CONFIG_EROFS_FS_ZIP
-extern int z_erofs_map_blocks_iter(struct inode *,
-                                  struct erofs_map_blocks *,
-                                  struct page **, int);
-#endif
-
-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);