[dm-devel] dm: fix blk-mq request-based DM queue initialization

Mike Snitzer snitzer at redhat.com
Thu Apr 30 01:41:52 UTC 2015


On Wed, Apr 29 2015 at  9:00am -0400,
Christoph Hellwig <hch at lst.de> wrote:

> On Tue, Apr 28, 2015 at 08:59:13PM -0400, Mike Snitzer wrote:
> > Commit bfebd1cdb4 ("dm: add full blk-mq support to request-based DM")
> > didn't properly account for the need to short-circuit re-initializing
> > DM's blk-mq request_queue if it was already initialized.
> > 
> > Fix dm_init_request_based_blk_mq_queue() to return early if the
> > mapped_device's tag_set already has its driver_data set to the
> > mapped_device pointer.
> 
> I'm not quite up to speed with this area of code, but shouldn't
> we always tear the queue fully down before trying to reinitialize it?

No, the same request_queue should be used for the lifetime of a DM
device.

I'm not interested in reinitializing the queue.  A DM table reload has
no need to destroy and recreate the request_queue associated with 
the DM device.  It would be bad to do so too because we actually use the
queue across table reloads in the case of dm-multipath with no paths
(see: map_request's handling of DM_MAPIO_REQUEUE which triggers
dm_requeue_request).




More information about the dm-devel mailing list