Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61ff7698 authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

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.

Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent dae6d196
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -1399,6 +1399,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted,
		fio.op_flags |= WRITE_FLUSH_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));
+1 −0
Original line number Diff line number Diff line
@@ -2840,6 +2840,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);