dm: fix request-based DM to not bounce through indirect dm_submit_bio
authorMike Snitzer <snitzer@redhat.com>
Wed, 7 Oct 2020 20:41:01 +0000 (16:41 -0400)
committerMike Snitzer <snitzer@redhat.com>
Wed, 7 Oct 2020 22:08:51 +0000 (18:08 -0400)
commit681cc5e8667e8579a2da8fa4090c48a2d73fc3bb
treeb23bad8c9b8c4e9385462c1dd7b8cf43eecd5182
parent9c37de297f6590937f95a28bec1b7ac68a38618f
dm: fix request-based DM to not bounce through indirect dm_submit_bio

It is unnecessary to force request-based DM to call into bio-based
dm_submit_bio (via indirect disk->fops->submit_bio) only to have it then
call blk_mq_submit_bio().

Fix this by establishing a request-based DM block_device_operations
(dm_rq_blk_dops, which doesn't have .submit_bio) and update
dm_setup_md_queue() to set md->disk->fops to it for
DM_TYPE_REQUEST_BASED.

Remove DM_TYPE_REQUEST_BASED conditional in dm_submit_bio and unexport
blk_mq_submit_bio.

Fixes: c62b37d96b6eb ("block: move ->make_request_fn to struct block_device_operations")
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
block/blk-mq.c
drivers/md/dm.c