Re: [PATCH 07/18] dm: always defer request allocation to the owner of the request_queue
From: Mike Snitzer <hidden>
Date: 2017-01-27 16:34:34
Also in:
dm-devel, linux-block, linux-scsi
From: Mike Snitzer <hidden>
Date: 2017-01-27 16:34:34
Also in:
dm-devel, linux-block, linux-scsi
On Wed, Jan 25 2017 at 12:25pm -0500, Christoph Hellwig [off-list ref] wrote:
DM already calls blk_mq_alloc_request on the request_queue of the underlying device if it is a blk-mq device. But now that we allow drivers to allocate additional data and initialize it ahead of time we need to do the same for all drivers. Doing so and using the new cmd_size infrastructure in the block layer greatly simplifies the dm-rq and mpath code, and should also make arbitrary combinations of SQ and MQ devices with SQ or MQ device mapper tables easily possible as a further step. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Mike Snitzer <redacted>
...
diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c index 3f12916..8d06834 100644 --- a/drivers/md/dm-rq.c +++ b/drivers/md/dm-rq.c@@ -185,7 +163,7 @@ static void end_clone_bio(struct bio *clone) static struct dm_rq_target_io *tio_from_request(struct request *rq) { - return (rq->q->mq_ops ? blk_mq_rq_to_pdu(rq) : rq->special); + return blk_mq_rq_to_pdu(rq); }
Noticed after further review that it seems a bit weird to have the non blk-mq support in drivers calling blk_mq_rq_to_pdu(). But I'm not sure a blk_rq_to_pdu() macro to blk_mq_rq_to_pdu() is the right thing. What do you guys think?