]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - block/mq-deadline.c
Merge branch 'i2c/for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
[mirror_ubuntu-artful-kernel.git] / block / mq-deadline.c
index d93ec713fa623d648d8ab7cba22e236d36f51b16..236121633ca004f5e6c1f06b1d32c25f8a90a3a7 100644 (file)
@@ -121,7 +121,7 @@ static void deadline_remove_request(struct request_queue *q, struct request *rq)
 }
 
 static void dd_request_merged(struct request_queue *q, struct request *req,
-                             int type)
+                             enum elv_merge type)
 {
        struct deadline_data *dd = q->elevator->elevator_data;
 
@@ -371,12 +371,16 @@ static bool dd_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio)
 {
        struct request_queue *q = hctx->queue;
        struct deadline_data *dd = q->elevator->elevator_data;
-       int ret;
+       struct request *free = NULL;
+       bool ret;
 
        spin_lock(&dd->lock);
-       ret = blk_mq_sched_try_merge(q, bio);
+       ret = blk_mq_sched_try_merge(q, bio, &free);
        spin_unlock(&dd->lock);
 
+       if (free)
+               blk_mq_free_request(free);
+
        return ret;
 }
 
@@ -395,10 +399,7 @@ static void dd_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
 
        blk_mq_sched_request_inserted(rq);
 
-       if (blk_mq_sched_bypass_insert(hctx, rq))
-               return;
-
-       if (at_head || rq->cmd_type != REQ_TYPE_FS) {
+       if (at_head || blk_rq_is_passthrough(rq)) {
                if (at_head)
                        list_add(&rq->queuelist, &dd->dispatch);
                else