ublk: fold __ublk_create_dev into ublk_ctrl_add_dev
authorChristoph Hellwig <hch@lst.de>
Thu, 21 Jul 2022 13:09:14 +0000 (15:09 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 21 Jul 2022 16:52:12 +0000 (10:52 -0600)
Fold __ublk_create_dev into its only caller to avoid the packing and
unpacking of the return value into an ERR_PTR.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: ZiyangZhang <ZiyangZhang@linux.alibaba.com>
Link: https://lore.kernel.org/r/20220721130916.1869719-7-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/ublk_drv.c

index 2032d67..b8ac7b5 100644 (file)
@@ -1017,23 +1017,6 @@ static int __ublk_alloc_dev_number(struct ublk_device *ub, int idx)
        return err;
 }
 
-static struct ublk_device *__ublk_create_dev(int idx)
-{
-       struct ublk_device *ub = NULL;
-       int ret;
-
-       ub = kzalloc(sizeof(*ub), GFP_KERNEL);
-       if (!ub)
-               return ERR_PTR(-ENOMEM);
-
-       ret = __ublk_alloc_dev_number(ub, idx);
-       if (ret < 0) {
-               kfree(ub);
-               return ERR_PTR(ret);
-       }
-       return ub;
-}
-
 static void __ublk_destroy_dev(struct ublk_device *ub)
 {
        spin_lock(&ublk_idr_lock);
@@ -1357,9 +1340,14 @@ static int ublk_ctrl_add_dev(struct io_uring_cmd *cmd)
        if (ret)
                return ret;
 
-       ub = __ublk_create_dev(header->dev_id);
-       if (IS_ERR(ub)) {
-               ret = PTR_ERR(ub);
+       ret = -ENOMEM;
+       ub = kzalloc(sizeof(*ub), GFP_KERNEL);
+       if (!ub)
+               goto out_unlock;
+
+       ret = __ublk_alloc_dev_number(ub, header->dev_id);
+       if (ret < 0) {
+               kfree(ub);
                goto out_unlock;
        }