• Christoph Hellwig's avatar
    dm: only initialize the request_queue once · 3e6180f0
    Christoph Hellwig authored
    Commit bfebd1cd ("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.
    
    Otherwise, reloading a blk-mq request-based DM table (either manually
    or via multipathd) resulted in errors, see:
     https://www.redhat.com/archives/dm-devel/2015-April/msg00132.html
    
    Fix is to only initialize the request_queue on the initial table load
    (when the mapped_device type is assigned).
    
    This is better than having dm_init_request_based_blk_mq_queue() return
    early if the queue was already initialized because it elevates the
    constraint to a more meaningful location in DM core.  As such the
    pre-existing early return in dm_init_request_based_queue() can now be
    removed.
    
    Fixes: bfebd1cd ("dm: add full blk-mq support to request-based DM")
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    3e6180f0
dm.c 83.8 KB