ublk_drv: fix missing error return code in ublk_add_dev()
authorYang Yingliang <yangyingliang@huawei.com>
Mon, 18 Jul 2022 04:24:08 +0000 (12:24 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 Jul 2022 19:10:22 +0000 (13:10 -0600)
If blk_mq_init_queue() fails, it should return error code in ublk_add_dev()

Fixes: cebbe577cb17 ("ublk_drv: fix request queue leak")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20220718042408.3132835-1-yangyingliang@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 2c1b01d..6636261 100644 (file)
@@ -1169,8 +1169,10 @@ static int ublk_add_dev(struct ublk_device *ub)
                goto out_deinit_queues;
 
        ub->ub_queue = blk_mq_init_queue(&ub->tag_set);
-       if (IS_ERR(ub->ub_queue))
+       if (IS_ERR(ub->ub_queue)) {
+               err = PTR_ERR(ub->ub_queue);
                goto out_cleanup_tags;
+       }
        ub->ub_queue->queuedata = ub;
 
        disk = ub->ub_disk = blk_mq_alloc_disk_for_queue(ub->ub_queue,