Re: [PATCH v2 10/10] block: put_device() if device_add() fails

From: Luis Chamberlain
Date: Fri Apr 24 2020 - 22:12:52 EST


On Fri, Apr 24, 2020 at 06:58:23PM -0700, Bart Van Assche wrote:
> On 2020-04-24 15:32, Luis Chamberlain wrote:
> > On Sun, Apr 19, 2020 at 04:40:45PM -0700, Bart Van Assche wrote:
> >> On 4/19/20 12:45 PM, Luis Chamberlain wrote:
> >>> Through code inspection I've found that we don't put_device() if
> >>> device_add() fails, and this must be done to decrement its refcount.
> >>
> >> Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>
> >
> > Turns out this is wrong, as bdi needs it still, we have can only remove
> > it once all users are done, which should be at the disk_release() path.
> >
> > I've found this while adding the errors paths missing.
>
> Hi Luis,
>
> I had a look at the comments above device_add() before I added my
> Reviewed-by. Now that I've had another look at these comments and also
> at the device_add() implementation I agree that we don't need this patch.

Thanks for the confirmation. And just to note, we don't do then
put_device() because we don't handle error paths properly. Once we do,
we'll need to ensure we put_disk() just at the right place. I'm working
on putting some final brush strokes on that now.

Luis