aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2015-07-13 20:44:14 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2015-07-25 11:54:25 -0400
commit548aedac5128e4bb256bab5c8e1db88e626697fc (patch)
tree2469f4784afd19e535858247dea683888daa0420 /fs
parent33b40178cb3bd75294d1a758b3f509a0d38682ab (diff)
f2fs: handle error cases in move_encrypted_block
This patch fixes some missing error handlers. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/gc.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index e1e73617d13b..883a841dfc6d 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -556,27 +556,34 @@ static void move_encrypted_block(struct inode *inode, block_t bidx)
556 if (!fio.encrypted_page) 556 if (!fio.encrypted_page)
557 goto put_out; 557 goto put_out;
558 558
559 f2fs_submit_page_bio(&fio); 559 err = f2fs_submit_page_bio(&fio);
560 if (err)
561 goto put_page_out;
562
563 /* write page */
564 lock_page(fio.encrypted_page);
565
566 if (unlikely(!PageUptodate(fio.encrypted_page)))
567 goto put_page_out;
568 if (unlikely(fio.encrypted_page->mapping != META_MAPPING(fio.sbi)))
569 goto put_page_out;
570
571 set_page_writeback(fio.encrypted_page);
560 572
561 /* allocate block address */ 573 /* allocate block address */
562 f2fs_wait_on_page_writeback(dn.node_page, NODE); 574 f2fs_wait_on_page_writeback(dn.node_page, NODE);
563
564 allocate_data_block(fio.sbi, NULL, fio.blk_addr, 575 allocate_data_block(fio.sbi, NULL, fio.blk_addr,
565 &fio.blk_addr, &sum, CURSEG_COLD_DATA); 576 &fio.blk_addr, &sum, CURSEG_COLD_DATA);
566 dn.data_blkaddr = fio.blk_addr;
567
568 /* write page */
569 lock_page(fio.encrypted_page);
570 set_page_writeback(fio.encrypted_page);
571 fio.rw = WRITE_SYNC; 577 fio.rw = WRITE_SYNC;
572 f2fs_submit_page_mbio(&fio); 578 f2fs_submit_page_mbio(&fio);
573 579
580 dn.data_blkaddr = fio.blk_addr;
574 set_data_blkaddr(&dn); 581 set_data_blkaddr(&dn);
575 f2fs_update_extent_cache(&dn); 582 f2fs_update_extent_cache(&dn);
576 set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); 583 set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE);
577 if (page->index == 0) 584 if (page->index == 0)
578 set_inode_flag(F2FS_I(inode), FI_FIRST_BLOCK_WRITTEN); 585 set_inode_flag(F2FS_I(inode), FI_FIRST_BLOCK_WRITTEN);
579 586put_page_out:
580 f2fs_put_page(fio.encrypted_page, 1); 587 f2fs_put_page(fio.encrypted_page, 1);
581put_out: 588put_out:
582 f2fs_put_dnode(&dn); 589 f2fs_put_dnode(&dn);