ublk: fold __ublk_create_dev into ublk_ctrl_add_dev

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>
This commit is contained in:
Christoph Hellwig 2022-07-21 15:09:14 +02:00 committed by Jens Axboe
parent 34d8f2bea5
commit cfee7e4de2

View 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;
}