Skip to content
  • Ming Lei's avatar
    blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue · c6ba9333
    Ming Lei authored
    blk_mq_map_swqueue() is called from blk_mq_init_allocated_queue()
    and blk_mq_update_nr_hw_queues(). For the former caller, the kobject
    isn't exposed to userspace yet. For the latter caller, hctx sysfs entries
    and debugfs are un-registered before updating nr_hw_queues.
    
    On the other hand, commit 2f8f1336
    
     ("blk-mq: always free hctx after
    request queue is freed") moves freeing hctx into queue's release
    handler, so there won't be race with queue release path too.
    
    So don't hold q->sysfs_lock in blk_mq_map_swqueue().
    
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Mike Snitzer <snitzer@redhat.com>
    Cc: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    c6ba9333