On Tue 10-08-21 22:27:20, Zhang Yi wrote: > 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@xxxxxxxxxx> Makes sense. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/inode.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index d8de607849df..eb2526a35254 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -4330,8 +4330,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); > > @@ -4418,8 +4416,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); > -- > 2.31.1 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR