diff --git a/block/blk-iocost.c b/block/blk-iocost.c index ef193389fffe9..b5a9cfcd75e9d 100644 --- a/block/blk-iocost.c +++ b/block/blk-iocost.c @@ -1374,7 +1374,7 @@ static void ioc_timer_fn(struct timer_list *timer) * should have woken up in the last period and expire idle iocgs. */ list_for_each_entry_safe(iocg, tiocg, &ioc->active_iocgs, active_list) { - if (!waitqueue_active(&iocg->waitq) && iocg->abs_vdebt && + if (!waitqueue_active(&iocg->waitq) && !iocg->abs_vdebt && !iocg_is_idle(iocg)) continue;