aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/elevator.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/block/elevator.c b/block/elevator.c
index 536be740ba4e..f6dafa8c7c4d 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -590,6 +590,12 @@ void elv_insert(request_queue_t *q, struct request *rq, int where)
590 */ 590 */
591 rq->cmd_flags |= REQ_SOFTBARRIER; 591 rq->cmd_flags |= REQ_SOFTBARRIER;
592 592
593 /*
594 * Most requeues happen because of a busy condition,
595 * don't force unplug of the queue for that case.
596 */
597 unplug_it = 0;
598
593 if (q->ordseq == 0) { 599 if (q->ordseq == 0) {
594 list_add(&rq->queuelist, &q->queue_head); 600 list_add(&rq->queuelist, &q->queue_head);
595 break; 601 break;
@@ -604,11 +610,6 @@ void elv_insert(request_queue_t *q, struct request *rq, int where)
604 } 610 }
605 611
606 list_add_tail(&rq->queuelist, pos); 612 list_add_tail(&rq->queuelist, pos);
607 /*
608 * most requeues happen because of a busy condition, don't
609 * force unplug of the queue for that case.
610 */
611 unplug_it = 0;
612 break; 613 break;
613 614
614 default: 615 default: