f2fs: fix to unlock page before exit
If we got an error after lock_page, we should unlock it before exit. Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
parent
9a55ed656c
commit
45856aff0d
|
@ -347,7 +347,7 @@ static int recover_data(struct f2fs_sb_info *sbi,
|
||||||
lock_page(page);
|
lock_page(page);
|
||||||
|
|
||||||
if (cp_ver != cpver_of_node(page))
|
if (cp_ver != cpver_of_node(page))
|
||||||
goto unlock_out;
|
break;
|
||||||
|
|
||||||
entry = get_fsync_inode(head, ino_of_node(page));
|
entry = get_fsync_inode(head, ino_of_node(page));
|
||||||
if (!entry)
|
if (!entry)
|
||||||
|
@ -355,7 +355,7 @@ static int recover_data(struct f2fs_sb_info *sbi,
|
||||||
|
|
||||||
err = do_recover_data(sbi, entry->inode, page, blkaddr);
|
err = do_recover_data(sbi, entry->inode, page, blkaddr);
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
break;
|
||||||
|
|
||||||
if (entry->blkaddr == blkaddr) {
|
if (entry->blkaddr == blkaddr) {
|
||||||
iput(entry->inode);
|
iput(entry->inode);
|
||||||
|
@ -366,7 +366,6 @@ next:
|
||||||
/* check next segment */
|
/* check next segment */
|
||||||
blkaddr = next_blkaddr_of_node(page);
|
blkaddr = next_blkaddr_of_node(page);
|
||||||
}
|
}
|
||||||
unlock_out:
|
|
||||||
unlock_page(page);
|
unlock_page(page);
|
||||||
out:
|
out:
|
||||||
__free_pages(page, 0);
|
__free_pages(page, 0);
|
||||||
|
|
Loading…
Reference in New Issue