2021-01-16 07:35:52

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] block: Fix an error handling in add_partition

Once we have called device_initialize(), we should
use put_device() to give up the reference on error,
just like what we have done on failure of device_add().

Signed-off-by: Dinghao Liu <[email protected]>
---
block/partitions/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/partitions/core.c b/block/partitions/core.c
index e7d776db803b..23460cee9de5 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c
@@ -384,7 +384,7 @@ static struct block_device *add_partition(struct gendisk *disk, int partno,

err = blk_alloc_devt(bdev, &devt);
if (err)
- goto out_bdput;
+ goto out_put;
pdev->devt = devt;

/* delay uevent until 'holders' subdir is created */
--
2.17.1


2021-01-16 08:22:03

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH] block: Fix an error handling in add_partition

On 1/15/21 11:34 PM, Dinghao Liu wrote:
> Once we have called device_initialize(), we should
> use put_device() to give up the reference on error,
> just like what we have done on failure of device_add().
>
> Signed-off-by: Dinghao Liu <[email protected]>
Please consider having following commit message, since above
commit message is looking odd from what we have in the tree :-


Once we have called device_initialize(), we should use put_device() to
give up the reference on error, just like what we have done on failure
of device_add().


Also have you tested this patch with the with generating appropriate error ?

2021-01-16 11:09:29

by Dinghao Liu

[permalink] [raw]
Subject: Re: Re: [PATCH] block: Fix an error handling in add_partition

> On 1/15/21 11:34 PM, Dinghao Liu wrote:
> > Once we have called device_initialize(), we should
> > use put_device() to give up the reference on error,
> > just like what we have done on failure of device_add().
> >
> > Signed-off-by: Dinghao Liu <[email protected]>
> Please consider having following commit message, since above
> commit message is looking odd from what we have in the tree :-
>
>
> Once we have called device_initialize(), we should use put_device() to
> give up the reference on error, just like what we have done on failure
> of device_add().
>

Thanks for this suggestion!

>
> Also have you tested this patch with the with generating appropriate error ?
>

No, this problem is found through comparing existing source code.

Regards,
Dinghao