]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/md/dm-mpath.c
dm mpath: use blk_mq_alloc_request() and blk_mq_free_request() directly
[karo-tx-linux.git] / drivers / md / dm-mpath.c
index 2f7c6a550a2d564bec40013548977e9482952fdc..d31fce508f8f0ff8c6f554e014c0231234270be4 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/delay.h>
 #include <scsi/scsi_dh.h>
 #include <linux/atomic.h>
+#include <linux/blk-mq.h>
 
 #define DM_MSG_PREFIX "multipath"
 #define DM_PG_INIT_DELAY_MSECS 2000
@@ -452,8 +453,8 @@ static int __multipath_map(struct dm_target *ti, struct request *clone,
                 * .request_fn stacked on blk-mq path(s) and
                 * blk-mq stacked on blk-mq path(s).
                 */
-               *__clone = blk_get_request(bdev_get_queue(bdev),
-                                          rq_data_dir(rq), GFP_ATOMIC);
+               *__clone = blk_mq_alloc_request(bdev_get_queue(bdev),
+                                               rq_data_dir(rq), BLK_MQ_REQ_NOWAIT);
                if (IS_ERR(*__clone)) {
                        /* ENOMEM, requeue */
                        clear_request_fn_mpio(m, map_context);
@@ -491,7 +492,7 @@ static int multipath_clone_and_map(struct dm_target *ti, struct request *rq,
 
 static void multipath_release_clone(struct request *clone)
 {
-       blk_put_request(clone);
+       blk_mq_free_request(clone);
 }
 
 /*