dm mpath: add optional "queue_mode" feature
authorMike Snitzer <snitzer@redhat.com>
Wed, 25 May 2016 01:16:51 +0000 (21:16 -0400)
committerMike Snitzer <snitzer@redhat.com>
Fri, 10 Jun 2016 19:16:02 +0000 (15:16 -0400)
commite83068a5faafb8ca65d3b58bd1e1e3959ce1ddce
tree9158ec7acad94d7035153f84e8ff53205caf7315
parentbf661be1fcf9b1da8abc81a56ff41ce5964ce896
dm mpath: add optional "queue_mode" feature

Allow a user to specify an optional feature 'queue_mode <mode>' where
<mode> may be "bio", "rq" or "mq" -- which corresponds to bio-based,
request_fn rq-based, and blk-mq rq-based respectively.

If the queue_mode feature isn't specified the default for the
"multipath" target is still "rq" but if dm_mod.use_blk_mq is set to Y
it'll default to mode "mq".

This new queue_mode feature introduces the ability for each multipath
device to have its own queue_mode (whereas before this feature all
multipath devices effectively had to have the same queue_mode).

This commit also goes a long way to eliminate the awkward (ab)use of
DM_TYPE_*, the associated filter_md_type() and other relatively fragile
and difficult to maintain code.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-mpath.c
drivers/md/dm-rq.c
drivers/md/dm-rq.h
drivers/md/dm-table.c
drivers/md/dm.c
drivers/md/dm.h
include/linux/device-mapper.h