aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/elevator.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/block/elevator.c b/drivers/block/elevator.c
index 415144372c75..af2388e73f61 100644
--- a/drivers/block/elevator.c
+++ b/drivers/block/elevator.c
@@ -136,7 +136,6 @@ static int elevator_attach(request_queue_t *q, struct elevator_type *e,
136 q->elevator = eq; 136 q->elevator = eq;
137 q->end_sector = 0; 137 q->end_sector = 0;
138 q->boundary_rq = NULL; 138 q->boundary_rq = NULL;
139 q->max_back_kb = 0;
140 139
141 if (eq->ops->elevator_init_fn) 140 if (eq->ops->elevator_init_fn)
142 ret = eq->ops->elevator_init_fn(q, eq); 141 ret = eq->ops->elevator_init_fn(q, eq);
@@ -227,16 +226,13 @@ void elevator_exit(elevator_t *e)
227void elv_dispatch_sort(request_queue_t *q, struct request *rq) 226void elv_dispatch_sort(request_queue_t *q, struct request *rq)
228{ 227{
229 sector_t boundary; 228 sector_t boundary;
230 unsigned max_back;
231 struct list_head *entry; 229 struct list_head *entry;
232 230
233 if (q->last_merge == rq) 231 if (q->last_merge == rq)
234 q->last_merge = NULL; 232 q->last_merge = NULL;
235 233
236 boundary = q->end_sector; 234 boundary = q->end_sector;
237 max_back = q->max_back_kb * 2; 235
238 boundary = boundary > max_back ? boundary - max_back : 0;
239
240 list_for_each_prev(entry, &q->queue_head) { 236 list_for_each_prev(entry, &q->queue_head) {
241 struct request *pos = list_entry_rq(entry); 237 struct request *pos = list_entry_rq(entry);
242 238