mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
btrfs: remove redundant writeback error check during fsync
If we can skip logging the inode during fsync, we check for writeback
errors in the inode's mapping by calling filemap_check_wb_err() and then
jump to the 'out_release_extents' label, which in turn jumps to the 'out'
label under which we check again for a writeback error by calling
file_check_and_advance_wb_err(). So the filemap_check_wb_err() ends up
being redundant. This happens since commit 333427a505 ("btrfs: minimal
conversion to errseq_t writeback error reporting on fsync").
Remove the filemap_check_wb_err() call.
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
e7c3cfb544
commit
395c42ba3d
|
|
@ -1688,14 +1688,6 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
|
|||
* reason, it's no longer relevant.
|
||||
*/
|
||||
clear_bit(BTRFS_INODE_NEEDS_FULL_SYNC, &inode->runtime_flags);
|
||||
/*
|
||||
* An ordered extent might have started before and completed
|
||||
* already with io errors, in which case the inode was not
|
||||
* updated and we end up here. So check the inode's mapping
|
||||
* for any errors that might have happened since we last
|
||||
* checked called fsync.
|
||||
*/
|
||||
ret = filemap_check_wb_err(inode->vfs_inode.i_mapping, file->f_wb_err);
|
||||
goto out_release_extents;
|
||||
}
|
||||
|
||||
|
|
@ -1811,6 +1803,10 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
|
|||
ASSERT(list_empty(&ctx.list));
|
||||
ASSERT(list_empty(&ctx.conflict_inodes));
|
||||
ASSERT(ret <= 0, "ret=%d", ret);
|
||||
/*
|
||||
* Ordered extents might have started and completed before this fsync,
|
||||
* so check for any io errors and advance the writeback error sequence.
|
||||
*/
|
||||
err = file_check_and_advance_wb_err(file);
|
||||
if (!ret)
|
||||
ret = err;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user