mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
ext4: move inode eio simulation behind io completeion
No EIO simulation is required if the buffer is uptodate, so move the simulation behind read bio completeion just like inode/block bitmap simulation does. Signed-off-by: Zhang Yi <yi.zhang@huawei.com> Reviewed-by: Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/r/20210826130412.3921207-2-yi.zhang@huawei.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
4a79a98c7b
commit
0904c9ae34
@ -4337,8 +4337,6 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
|
||||
bh = sb_getblk(sb, block);
|
||||
if (unlikely(!bh))
|
||||
return -ENOMEM;
|
||||
if (ext4_simulate_fail(sb, EXT4_SIM_INODE_EIO))
|
||||
goto simulate_eio;
|
||||
if (!buffer_uptodate(bh)) {
|
||||
lock_buffer(bh);
|
||||
|
||||
@ -4425,8 +4423,8 @@ make_io:
|
||||
ext4_read_bh_nowait(bh, REQ_META | REQ_PRIO, NULL);
|
||||
blk_finish_plug(&plug);
|
||||
wait_on_buffer(bh);
|
||||
ext4_simulate_fail_bh(sb, bh, EXT4_SIM_INODE_EIO);
|
||||
if (!buffer_uptodate(bh)) {
|
||||
simulate_eio:
|
||||
if (ret_block)
|
||||
*ret_block = block;
|
||||
brelse(bh);
|
||||
|
Loading…
Reference in New Issue
Block a user