f2fs: fix to handle error path of f2fs_ra_meta_pages()
authorChao Yu <yuchao0@huawei.com>
Fri, 10 Apr 2020 10:07:20 +0000 (18:07 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 17 Apr 2020 16:17:00 +0000 (09:17 -0700)
In f2fs_ra_meta_pages(), if f2fs_submit_page_bio() failed, we need to
unlock page, fix it.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c

index 852890b72d6acd62bf63bef69c38520f674f0b98..6be357c8e00203b2c1399fe54008dcde26b26526 100644 (file)
@@ -220,6 +220,7 @@ int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages,
                .is_por = (type == META_POR),
        };
        struct blk_plug plug;
+       int err;
 
        if (unlikely(type == META_POR))
                fio.op_flags &= ~REQ_META;
@@ -263,8 +264,8 @@ int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages,
                }
 
                fio.page = page;
-               f2fs_submit_page_bio(&fio);
-               f2fs_put_page(page, 0);
+               err = f2fs_submit_page_bio(&fio);
+               f2fs_put_page(page, err ? 1 : 0);
        }
 out:
        blk_finish_plug(&plug);