--- a/block/elevator.c
+++ b/block/elevator.c
@@ -366,7 +366,10 @@ void elv_dispatch_sort(struct request_queue *q, struct request *rq)
list_for_each_prev(entry, &q->queue_head) {
struct request *pos = list_entry_rq(entry);
- if ((req_op(rq) == REQ_OP_DISCARD) != (req_op(pos) == REQ_OP_DISCARD))
+ if ((req_op(rq) == REQ_OP_DISCARD ||
+ req_op(rq) == REQ_OP_SECURE_ERASE) !=
+ (req_op(pos) == REQ_OP_DISCARD ||
+ req_op(pos) == REQ_OP_SECURE_ERASE))
break;
This really should be a:
if (req_op(rq) != req_op(pos))
I'l lleave it up to Jens if he wants that in this patch or not, otherwise
I'll send an incremental patch.