mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
btrfs: stop setting PageError in the data I/O path
PageError is not used by the VFS/MM and deprecated because it uses up a page bit and has no coherent rules. Instead read errors are usually propagated by not setting or clearing the uptodate bit, and write errors are propagated through the address_space. Btrfs now only sets the flag and never clears it for data pages, so just remove all places setting it, and the subpage error bit. Note that the error propagation for superblock writes that work on the block device mapping still uses PageError for now, but that will be addressed in a separate series. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
3e92499e3b
commit
2b2553f123
5 changed files with 9 additions and 65 deletions
|
@ -1153,8 +1153,6 @@ static int submit_uncompressed_range(struct btrfs_inode *inode,
|
|||
const u64 page_start = page_offset(locked_page);
|
||||
const u64 page_end = page_start + PAGE_SIZE - 1;
|
||||
|
||||
btrfs_page_set_error(inode->root->fs_info, locked_page,
|
||||
page_start, PAGE_SIZE);
|
||||
set_page_writeback(locked_page);
|
||||
end_page_writeback(locked_page);
|
||||
end_extent_writepage(locked_page, ret, page_start, page_end);
|
||||
|
@ -2942,7 +2940,6 @@ out_page:
|
|||
mapping_set_error(page->mapping, ret);
|
||||
end_extent_writepage(page, ret, page_start, page_end);
|
||||
clear_page_dirty_for_io(page);
|
||||
SetPageError(page);
|
||||
}
|
||||
btrfs_page_clear_checked(inode->root->fs_info, page, page_start, PAGE_SIZE);
|
||||
unlock_page(page);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue