• Mike Snitzer's avatar
    blk-mq: add blk_mq_init_allocated_queue and export blk_mq_register_disk · b62c21b7
    Mike Snitzer authored
    Add a variant of blk_mq_init_queue that allows a previously allocated
    queue to be initialized.  blk_mq_init_allocated_queue models
    blk_init_allocated_queue -- which was also created for DM's use.
    
    DM's approach to device creation requires a placeholder request_queue be
    allocated for use with alloc_dev() but the decision about what type of
    request_queue will be ultimately created is deferred until all component
    devices referenced in the DM table are processed to determine the table
    type (request-based, blk-mq request-based, or bio-based).
    
    Also, because of DM's late finalization of the request_queue type
    the call to blk_mq_register_disk() doesn't happen during alloc_dev().
    Must export blk_mq_register_disk() so that DM can backfill the 'mq' dir
    once the blk-mq queue is fully allocated.
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Reviewed-by: default avatarMing Lei <ming.lei@canonical.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    b62c21b7
blk-mq.c 51.8 KB