]> git.itanic.dy.fi Git - linux-stable/commitdiff
blk-mq: fix error handling in __blk_mq_alloc_disk
authorChristoph Hellwig <hch@lst.de>
Wed, 20 Jul 2022 13:05:40 +0000 (15:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Sep 2022 09:32:23 +0000 (11:32 +0200)
commit 0a3e5cc7bbfcd571a2e53779ef7d7aa3c57d5432 upstream.

To fully clean up the queue if the disk allocation fails we need to
call blk_mq_destroy_queue and not just blk_put_queue.

Fixes: 6f8191fdf41d ("block: simplify disk shutdown")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20220720130541.1323531-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/blk-mq.c

index 6e22700dd6cf43cd3af788061770f294d285b6fb..69d0a58f9e2f1095d07053805cf42155f4b66041 100644 (file)
@@ -3949,7 +3949,7 @@ struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata,
 
        disk = __alloc_disk_node(q, set->numa_node, lkclass);
        if (!disk) {
-               blk_put_queue(q);
+               blk_mq_destroy_queue(q);
                return ERR_PTR(-ENOMEM);
        }
        set_bit(GD_OWNS_QUEUE, &disk->state);