[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