diff options
author | Chao Yu <yuchao0@huawei.com> | 2018-07-16 12:02:17 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-08-01 14:52:36 -0400 |
commit | 7735730d39d75e70476c1b01435b9b1f41637f0e (patch) | |
tree | 49a25ab3800e55a162c6ad0a87ff8d84e715482b /fs/f2fs/recovery.c | |
parent | 18dd6470c2d14d10f5a2dd926925dc80dbd3abfd (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.c | 13 |
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); |