Loading fs/f2fs/recovery.c +11 −4 Original line number Diff line number Diff line Loading @@ -325,8 +325,10 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, break; } if (!is_recoverable_dnode(page)) if (!is_recoverable_dnode(page)) { f2fs_put_page(page, 1); break; } if (!is_fsync_dnode(page)) goto next; Loading @@ -338,8 +340,10 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, if (!check_only && IS_INODE(page) && is_dent_dnode(page)) { err = f2fs_recover_inode_page(sbi, page); if (err) if (err) { f2fs_put_page(page, 1); break; } quota_inode = true; } Loading @@ -355,6 +359,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, err = 0; goto next; } f2fs_put_page(page, 1); break; } } Loading @@ -370,6 +375,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, "%s: detect looped node chain, " "blkaddr:%u, next:%u", __func__, blkaddr, next_blkaddr_of_node(page)); f2fs_put_page(page, 1); err = -EINVAL; break; } Loading @@ -380,7 +386,6 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, f2fs_ra_meta_pages_cond(sbi, blkaddr); } f2fs_put_page(page, 1); return err; } Loading Loading @@ -666,9 +671,11 @@ static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list, */ if (IS_INODE(page)) { err = recover_inode(entry->inode, page); if (err) if (err) { f2fs_put_page(page, 1); break; } } if (entry->last_dentry == blkaddr) { err = recover_dentry(entry->inode, page, dir_list); if (err) { Loading Loading
fs/f2fs/recovery.c +11 −4 Original line number Diff line number Diff line Loading @@ -325,8 +325,10 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, break; } if (!is_recoverable_dnode(page)) if (!is_recoverable_dnode(page)) { f2fs_put_page(page, 1); break; } if (!is_fsync_dnode(page)) goto next; Loading @@ -338,8 +340,10 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, if (!check_only && IS_INODE(page) && is_dent_dnode(page)) { err = f2fs_recover_inode_page(sbi, page); if (err) if (err) { f2fs_put_page(page, 1); break; } quota_inode = true; } Loading @@ -355,6 +359,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, err = 0; goto next; } f2fs_put_page(page, 1); break; } } Loading @@ -370,6 +375,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, "%s: detect looped node chain, " "blkaddr:%u, next:%u", __func__, blkaddr, next_blkaddr_of_node(page)); f2fs_put_page(page, 1); err = -EINVAL; break; } Loading @@ -380,7 +386,6 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, f2fs_ra_meta_pages_cond(sbi, blkaddr); } f2fs_put_page(page, 1); return err; } Loading Loading @@ -666,9 +671,11 @@ static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list, */ if (IS_INODE(page)) { err = recover_inode(entry->inode, page); if (err) if (err) { f2fs_put_page(page, 1); break; } } if (entry->last_dentry == blkaddr) { err = recover_dentry(entry->inode, page, dir_list); if (err) { Loading