On Fri, Feb 10, 2023 at 03:48:18AM +0800, Kemeng Shi wrote: > Only call trace of ext4_mb_check_limits is as following: > ext4_mb_complex_scan_group > ext4_mb_measure_extent > ext4_mb_check_limits(ac, e4b, 0); > ext4_mb_check_limits(ac, e4b, 1); > > If the first ac->ac_found > sbi->s_mb_max_to_scan check in > ext4_mb_check_limits is met, we will set ac_status to > AC_STATUS_BREAK and call ext4_mb_try_best_found to try to use > ac->ac_b_ex. > If ext4_mb_try_best_found successes, then block allocation finishs, > the removed ac->ac_found > sbi->s_mb_min_to_scan check is not reachable. > If ext4_mb_try_best_found fails, then we set EXT4_MB_HINT_FIRST and > reset ac->ac_b_ex to retry block allocation. We will use any found > free extent in ext4_mb_measure_extent before reach the removed > ac->ac_found > sbi->s_mb_min_to_scan check. > In summary, the removed ac->ac_found > sbi->s_mb_min_to_scan check is > not reachable and we can remove that dead check. > > Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx> > --- > fs/ext4/mballoc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c > index 0fdbf16ac180..e53f84de5018 100644 > --- a/fs/ext4/mballoc.c > +++ b/fs/ext4/mballoc.c > @@ -2039,8 +2039,7 @@ static void ext4_mb_check_limits(struct ext4_allocation_context *ac, > if (bex->fe_len < gex->fe_len) > return; > > - if ((finish_group || ac->ac_found > sbi->s_mb_min_to_scan) > - && bex->fe_group == e4b->bd_group) { > + if (finish_group && bex->fe_group == e4b->bd_group) { > /* recheck chunk's availability - we don't know > * when it was found (within this lock-unlock > * period or not) */ > -- > 2.30.0 > Feel free to add: Reviewed-by: Ojaswin Mujoo <ojaswin@xxxxxxxxxxxxx>