block CFQ: avoid moving request to different queue
[linux-2.6-block.git] / block / cfq-iosched.c
index fb52df9744f5fe411908162fbb02257ca0bc097a..e62e9205b80a8047193cd32a690a0e5d5b689b85 100644 (file)
@@ -1973,7 +1973,8 @@ cfq_merged_requests(struct request_queue *q, struct request *rq,
         * reposition in fifo if next is older than rq
         */
        if (!list_empty(&rq->queuelist) && !list_empty(&next->queuelist) &&
-           time_before(rq_fifo_time(next), rq_fifo_time(rq))) {
+           time_before(rq_fifo_time(next), rq_fifo_time(rq)) &&
+           cfqq == RQ_CFQQ(next)) {
                list_move(&rq->queuelist, &next->queuelist);
                rq_set_fifo_time(rq, rq_fifo_time(next));
        }