Skip to content

Commit 81b0953

Browse files
Jaegeuk Kimpundiramit
authored andcommitted
UPSTREAM: f2fs: clear PageError on writepage - part 2
This patch clears PageError in some pages tagged by read path, but when we write the pages with valid contents, writepage should clear the bit likewise ext4. Change-Id: I7d599ea65d0e30e5faa1cbfb3e1309f62511202b Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> (cherry picked from commit a44b418)
1 parent 4a862dd commit 81b0953

4 files changed

Lines changed: 4 additions & 0 deletions

File tree

fs/f2fs/gc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,7 @@ static void move_data_block(struct inode *inode, block_t bidx,
693693
dec_page_count(fio.sbi, F2FS_DIRTY_META);
694694

695695
set_page_writeback(fio.encrypted_page);
696+
ClearPageError(page);
696697

697698
/* allocate block address */
698699
f2fs_wait_on_page_writeback(dn.node_page, NODE, true);

fs/f2fs/inline.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ int f2fs_convert_inline_page(struct dnode_of_data *dn, struct page *page)
157157

158158
/* write data page to try to make data consistent */
159159
set_page_writeback(page);
160+
ClearPageError(page);
160161
fio.old_blkaddr = dn->data_blkaddr;
161162
set_inode_flag(dn->inode, FI_HOT_DATA);
162163
write_data_page(dn, &fio);

fs/f2fs/node.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted,
13981398
fio.op_flags |= WRITE_FLUSH_FUA;
13991399

14001400
set_page_writeback(page);
1401+
ClearPageError(page);
14011402
fio.old_blkaddr = ni.blk_addr;
14021403
write_node_page(nid, &fio);
14031404
set_node_addr(sbi, &ni, fio.new_blkaddr, is_fsync_dnode(page));

fs/f2fs/segment.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2838,6 +2838,7 @@ void write_meta_page(struct f2fs_sb_info *sbi, struct page *page,
28382838
fio.op_flags &= ~REQ_META;
28392839

28402840
set_page_writeback(page);
2841+
ClearPageError(page);
28412842
f2fs_submit_page_write(&fio);
28422843

28432844
f2fs_update_iostat(sbi, io_type, F2FS_BLKSIZE);

0 commit comments

Comments
 (0)