diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index a8237be97a28d12e6684c7a6744ea9f881253a78..e859b4966e4ccddeaa361177cf57dba568aa3657 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -989,7 +989,8 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd) * flight or is idling for a new request, allow either of these * conditions to happen (or time out) before selecting a new queue. */ - if (cfqq->dispatched || timer_pending(&cfqd->idle_slice_timer)) { + if (timer_pending(&cfqd->idle_slice_timer) || + (cfqq->dispatched && cfq_cfqq_idle_window(cfqq))) { cfqq = NULL; goto keep_queue; }