diff options
-rw-r--r-- | block/cfq-iosched.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index ca4d19907243..f90519430be6 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
@@ -3523,25 +3523,8 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq) | |||
3523 | } | 3523 | } |
3524 | } | 3524 | } |
3525 | 3525 | ||
3526 | if (!cfqd->rq_in_driver) { | 3526 | if (!cfqd->rq_in_driver) |
3527 | cfq_schedule_dispatch(cfqd); | 3527 | cfq_schedule_dispatch(cfqd); |
3528 | return; | ||
3529 | } | ||
3530 | /* | ||
3531 | * A queue is idle at cfq_dispatch_requests(), but it gets noidle | ||
3532 | * later. We schedule a dispatch if the queue has no requests, | ||
3533 | * otherwise the disk is actually in idle till all requests | ||
3534 | * are finished even cfq_arm_slice_timer doesn't make the queue idle | ||
3535 | * */ | ||
3536 | cfqq = cfqd->active_queue; | ||
3537 | if (!cfqq) | ||
3538 | return; | ||
3539 | |||
3540 | if (RB_EMPTY_ROOT(&cfqq->sort_list) && !cfq_should_idle(cfqd, cfqq) && | ||
3541 | (!cfqd->cfq_group_idle || cfqq->cfqg->nr_cfqq > 1)) { | ||
3542 | cfq_del_timer(cfqd, cfqq); | ||
3543 | cfq_schedule_dispatch(cfqd); | ||
3544 | } | ||
3545 | } | 3528 | } |
3546 | 3529 | ||
3547 | /* | 3530 | /* |