aboutsummaryrefslogtreecommitdiffstats
path: root/block/cfq-iosched.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2006-06-01 12:53:43 -0400
committerJens Axboe <axboe@suse.de>2006-06-01 12:53:43 -0400
commitb52a834892f17b6c54c34ab65f1fad1a9229e764 (patch)
tree0f66d6a310f108bb1f0badd3ebea3b1db0a163f6 /block/cfq-iosched.c
parentae818a38d4755ba4c16a22a8eacec859511a5393 (diff)
[PATCH] cfq-iosched: busy_rr fairness fix
Now that we select busy_rr for possible service, insert entries at the back of that list instead of at the front. Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r--block/cfq-iosched.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 85d188a30f82..8e9d84825e1c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -501,10 +501,13 @@ static void cfq_resort_rr_list(struct cfq_queue *cfqq, int preempted)
501 501
502 /* 502 /*
503 * if queue was preempted, just add to front to be fair. busy_rr 503 * if queue was preempted, just add to front to be fair. busy_rr
504 * isn't sorted. 504 * isn't sorted, but insert at the back for fairness.
505 */ 505 */
506 if (preempted || list == &cfqd->busy_rr) { 506 if (preempted || list == &cfqd->busy_rr) {
507 list_add(&cfqq->cfq_list, list); 507 if (preempted)
508 list = list->prev;
509
510 list_add_tail(&cfqq->cfq_list, list);
508 return; 511 return;
509 } 512 }
510 513