f2fs: clear page_error for all the writebacking pages
Jaegeuk Kim
maintainerPATCH 1/1 f2fs: clear page_error for all the writebacking pages
This patch clear page_error bit, if the page is going to be writebacked.
--- fs/f2fs/gc.c | 1 + fs/f2fs/inline.c | 1 + fs/f2fs/node.c | 1 + fs/f2fs/segment.c | 1 + 4 files changed, 4 insertions(+)
fs/f2fs/gc.c +1 -0
@@ -693,6 +693,7 @@ static void move_data_block(struct inode *inode, block_t bidx,dec_page_count (fio.sbi,F2FS_DIRTY_META );set_page_writeback (fio.encrypted_page); +ClearPageError (page);/* allocate block address */ f2fs_wait_on_page_writeback (dn.node_page,NODE , true);
fs/f2fs/inline.c +1 -0
@@ -139,6 +139,7 @@ int f2fs_convert_inline_page(struct dnode_of_data *dn, struct page *page)/* write data page to try to make data consistent */ set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = dn->data_blkaddr;set_inode_flag (dn->inode,FI_HOT_DATA );write_data_page (dn, &fio);
fs/f2fs/node.c +1 -0
@@ -1394,6 +1394,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted, fio.op_flags |=REQ_PREFLUSH |REQ_FUA ;set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = ni.blk_addr;write_node_page (nid, &fio);set_node_addr (sbi, &ni, fio.new_blkaddr,is_fsync_dnode (page));
fs/f2fs/segment.c +1 -0
@@ -2758,6 +2758,7 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page, fio.op_flags &= ~REQ_META ;set_page_writeback (page); +ClearPageError (page);f2fs_submit_page_write (&fio);f2fs_update_iostat (sbi, io_type,F2FS_BLKSIZE );
Signature · 1 line
2.17.0.484.g0c8726318c-goog
Hi Jaegeuk,
Quoted 1 line · Jaegeuk Kim
This patch clear
page_errorbit, if the page is going to be writebacked.
This patch is similar to previous patch ("f2fs: clear PageError on writepage"), only coverage is different, could you merge them?
Thanks,
Quoted 51 lines
Signed-off-by Jaegeuk Kim <[email protected]>--- fs/f2fs/gc.c | 1 + fs/f2fs/inline.c | 1 + fs/f2fs/node.c | 1 + fs/f2fs/segment.c | 1 + 4 files changed, 4 insertions(+)fs/f2fs/gc.c +1
-0@@ -693,6 +693,7 @@ static void move_data_block(struct inode *inode, block_t bidx,dec_page_count (fio.sbi,F2FS_DIRTY_META );set_page_writeback (fio.encrypted_page); +ClearPageError (page);/* allocate block address */ f2fs_wait_on_page_writeback (dn.node_page,NODE , true);fs/f2fs/inline.c +1
-0@@ -139,6 +139,7 @@ int f2fs_convert_inline_page(struct dnode_of_data *dn, struct page *page)/* write data page to try to make data consistent */ set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = dn->data_blkaddr;set_inode_flag (dn->inode,FI_HOT_DATA );write_data_page (dn, &fio);fs/f2fs/node.c +1
-0@@ -1394,6 +1394,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted, fio.op_flags |=REQ_PREFLUSH |REQ_FUA ;set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = ni.blk_addr;write_node_page (nid, &fio);set_node_addr (sbi, &ni, fio.new_blkaddr,is_fsync_dnode (page));fs/f2fs/segment.c +0
-0
fs/f2fs/segment.c void write_meta_page(struct f2fs_sb_info *sbi, struct page *page, · line 2764
Quoted 7 lines
fs/f2fs/segment.c +1
-0@@ -2758,6 +2758,7 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page, fio.op_flags &= ~REQ_META ;set_page_writeback (page); +ClearPageError (page);f2fs_submit_page_write (&fio);f2fs_update_iostat (sbi, io_type,F2FS_BLKSIZE );
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Jaegeuk Kim
maintainerQuoted 7 lines · Chao Yu
Hi Jaegeuk,
Quoted 1 line · Jaegeuk Kim
This patch clear
page_errorbit, if the page is going to be writebacked.This patch is similar to previous patch ("f2fs: clear PageError on writepage"), only coverage is different, could you merge them?
Yeah, done.
Quoted 61 lines
Thanks,
Quoted 58 lines
Signed-off-by Jaegeuk Kim <[email protected]>--- fs/f2fs/gc.c | 1 + fs/f2fs/inline.c | 1 + fs/f2fs/node.c | 1 + fs/f2fs/segment.c | 1 + 4 files changed, 4 insertions(+)fs/f2fs/gc.c +1
-0@@ -693,6 +693,7 @@ static void move_data_block(struct inode *inode, block_t bidx,dec_page_count (fio.sbi,F2FS_DIRTY_META );set_page_writeback (fio.encrypted_page); +ClearPageError (page);/* allocate block address */ f2fs_wait_on_page_writeback (dn.node_page,NODE , true);fs/f2fs/inline.c +1
-0@@ -139,6 +139,7 @@ int f2fs_convert_inline_page(struct dnode_of_data *dn, struct page *page)/* write data page to try to make data consistent */ set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = dn->data_blkaddr;set_inode_flag (dn->inode,FI_HOT_DATA );write_data_page (dn, &fio);fs/f2fs/node.c +1
-0@@ -1394,6 +1394,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted, fio.op_flags |=REQ_PREFLUSH |REQ_FUA ;set_page_writeback (page); +ClearPageError (page); fio.old_blkaddr = ni.blk_addr;write_node_page (nid, &fio);set_node_addr (sbi, &ni, fio.new_blkaddr,is_fsync_dnode (page));fs/f2fs/segment.c +1
-0@@ -2758,6 +2758,7 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page, fio.op_flags &= ~REQ_META ;set_page_writeback (page); +ClearPageError (page);f2fs_submit_page_write (&fio);f2fs_update_iostat (sbi, io_type,F2FS_BLKSIZE );