aboutsummaryrefslogtreecommitdiffstats
path: root/block/as-iosched.c
diff options
context:
space:
mode:
authorAaron Carroll <aaronc@gelato.unsw.edu.au>2007-12-05 05:07:07 -0500
committerJens Axboe <jens.axboe@oracle.com>2007-12-18 02:29:28 -0500
commit49565124b13bb16607e7f8fc8fb1d9c5c355a1a3 (patch)
tree47629c0533b9292f51cc9dc2f37d851e0913b727 /block/as-iosched.c
parent8896f3c039b0834ba695d154299b724ee5710b97 (diff)
as-iosched: fix write batch start point
New write batches currently start from where the last one completed. We have no idea where the head is after switching batches, so this makes little sense. Instead, start the next batch from the request with the earliest deadline in the hope that we avoid a deadline expiry later on. Signed-off-by: Aaron Carroll <aaronc@gelato.unsw.edu.au> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/as-iosched.c')
-rw-r--r--block/as-iosched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/as-iosched.c b/block/as-iosched.c
index 4513fc59c9da..555cd6bf4ce5 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1097,7 +1097,8 @@ dispatch_writes:
1097 ad->batch_data_dir = REQ_ASYNC; 1097 ad->batch_data_dir = REQ_ASYNC;
1098 ad->current_write_count = ad->write_batch_count; 1098 ad->current_write_count = ad->write_batch_count;
1099 ad->write_batch_idled = 0; 1099 ad->write_batch_idled = 0;
1100 rq = ad->next_rq[ad->batch_data_dir]; 1100 rq = rq_entry_fifo(ad->fifo_list[REQ_ASYNC].next);
1101 ad->last_check_fifo[REQ_ASYNC] = jiffies;
1101 goto dispatch_request; 1102 goto dispatch_request;
1102 } 1103 }
1103 1104