diff options
Diffstat (limited to 'block/elevator.c')
-rw-r--r-- | block/elevator.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/block/elevator.c b/block/elevator.c index c3555c9c672f..ea9319db50d7 100644 --- a/block/elevator.c +++ b/block/elevator.c | |||
@@ -366,8 +366,7 @@ void elv_dispatch_sort(struct request_queue *q, struct request *rq) | |||
366 | list_for_each_prev(entry, &q->queue_head) { | 366 | list_for_each_prev(entry, &q->queue_head) { |
367 | struct request *pos = list_entry_rq(entry); | 367 | struct request *pos = list_entry_rq(entry); |
368 | 368 | ||
369 | if ((rq->cmd_flags & REQ_DISCARD) != | 369 | if ((req_op(rq) == REQ_OP_DISCARD) != (req_op(pos) == REQ_OP_DISCARD)) |
370 | (pos->cmd_flags & REQ_DISCARD)) | ||
371 | break; | 370 | break; |
372 | if (rq_data_dir(rq) != rq_data_dir(pos)) | 371 | if (rq_data_dir(rq) != rq_data_dir(pos)) |
373 | break; | 372 | break; |
@@ -717,12 +716,12 @@ void elv_put_request(struct request_queue *q, struct request *rq) | |||
717 | e->type->ops.elevator_put_req_fn(rq); | 716 | e->type->ops.elevator_put_req_fn(rq); |
718 | } | 717 | } |
719 | 718 | ||
720 | int elv_may_queue(struct request_queue *q, int rw) | 719 | int elv_may_queue(struct request_queue *q, int op, int op_flags) |
721 | { | 720 | { |
722 | struct elevator_queue *e = q->elevator; | 721 | struct elevator_queue *e = q->elevator; |
723 | 722 | ||
724 | if (e->type->ops.elevator_may_queue_fn) | 723 | if (e->type->ops.elevator_may_queue_fn) |
725 | return e->type->ops.elevator_may_queue_fn(q, rw); | 724 | return e->type->ops.elevator_may_queue_fn(q, op, op_flags); |
726 | 725 | ||
727 | return ELV_MQUEUE_MAY; | 726 | return ELV_MQUEUE_MAY; |
728 | } | 727 | } |