Commit 0904c9ae authored by Zhang Yi's avatar Zhang Yi Committed by Theodore Ts'o
Browse files

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: default avatarZhang Yi <yi.zhang@huawei.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20210826130412.3921207-2-yi.zhang@huawei.com


Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 4a79a98c
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
		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);