summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/recovery.c
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2018-07-16 12:02:17 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2018-08-01 14:52:36 -0400
commit7735730d39d75e70476c1b01435b9b1f41637f0e (patch)
tree49a25ab3800e55a162c6ad0a87ff8d84e715482b /fs/f2fs/recovery.c
parent18dd6470c2d14d10f5a2dd926925dc80dbd3abfd (diff)
f2fs: fix to propagate error from __get_meta_page()
If caller of __get_meta_page() can handle error, let's propagate error from __get_meta_page(). Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/recovery.c')
-rw-r--r--fs/f2fs/recovery.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index 0d927ae26c48..956f34c87082 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -256,6 +256,10 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head,
256 return 0; 256 return 0;
257 257
258 page = f2fs_get_tmp_page(sbi, blkaddr); 258 page = f2fs_get_tmp_page(sbi, blkaddr);
259 if (IS_ERR(page)) {
260 err = PTR_ERR(page);
261 break;
262 }
259 263
260 if (!is_recoverable_dnode(page)) 264 if (!is_recoverable_dnode(page))
261 break; 265 break;
@@ -471,7 +475,10 @@ retry_dn:
471 475
472 f2fs_wait_on_page_writeback(dn.node_page, NODE, true); 476 f2fs_wait_on_page_writeback(dn.node_page, NODE, true);
473 477
474 f2fs_get_node_info(sbi, dn.nid, &ni); 478 err = f2fs_get_node_info(sbi, dn.nid, &ni);
479 if (err)
480 goto err;
481
475 f2fs_bug_on(sbi, ni.ino != ino_of_node(page)); 482 f2fs_bug_on(sbi, ni.ino != ino_of_node(page));
476 f2fs_bug_on(sbi, ofs_of_node(dn.node_page) != ofs_of_node(page)); 483 f2fs_bug_on(sbi, ofs_of_node(dn.node_page) != ofs_of_node(page));
477 484
@@ -574,6 +581,10 @@ static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list,
574 f2fs_ra_meta_pages_cond(sbi, blkaddr); 581 f2fs_ra_meta_pages_cond(sbi, blkaddr);
575 582
576 page = f2fs_get_tmp_page(sbi, blkaddr); 583 page = f2fs_get_tmp_page(sbi, blkaddr);
584 if (IS_ERR(page)) {
585 err = PTR_ERR(page);
586 break;
587 }
577 588
578 if (!is_recoverable_dnode(page)) { 589 if (!is_recoverable_dnode(page)) {
579 f2fs_put_page(page, 1); 590 f2fs_put_page(page, 1);