dm: allow immutable request-based targets to use blk-mq pdu
[deliverable/linux.git] / drivers / md / dm-mpath.c
index cfa29f574c2a9e1454788a5757471835b254d857..fde08c9809ef4cec69736998b46217923182589a 100644 (file)
@@ -418,12 +418,19 @@ static int __multipath_map(struct dm_target *ti, struct request *clone,
        spin_unlock_irq(&m->lock);
 
        if (clone) {
-               /* Old request-based interface: allocated clone is passed in */
+               /*
+                * Old request-based interface: allocated clone is passed in.
+                * Used by: .request_fn stacked on .request_fn path(s).
+                */
                clone->q = bdev_get_queue(bdev);
                clone->rq_disk = bdev->bd_disk;
                clone->cmd_flags |= REQ_FAILFAST_TRANSPORT;
        } else {
-               /* blk-mq request-based interface */
+               /*
+                * blk-mq request-based interface; used by both:
+                * .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);
                if (IS_ERR(*__clone)) {
@@ -1684,7 +1691,8 @@ out:
  *---------------------------------------------------------------*/
 static struct target_type multipath_target = {
        .name = "multipath",
-       .version = {1, 10, 0},
+       .version = {1, 11, 0},
+       .features = DM_TARGET_SINGLETON | DM_TARGET_IMMUTABLE,
        .module = THIS_MODULE,
        .ctr = multipath_ctr,
        .dtr = multipath_dtr,
This page took 0.026166 seconds and 5 git commands to generate.