On Fri, Nov 27, 2020 at 02:19:01PM +0100, Jan Kara wrote:
> The percpu refcount is long gone after the series refactoring...

True.

> > @@ -939,13 +910,13 @@ void blk_request_module(dev_t devt)
> >   */
> >  struct block_device *bdget_disk(struct gendisk *disk, int partno)
> >  {
> > -   struct hd_struct *part;
> >     struct block_device *bdev = NULL;
> >  
> > -   part = disk_get_part(disk, partno);
> > -   if (part)
> > -           bdev = bdget_part(part);
> > -   disk_put_part(part);
> > +   rcu_read_lock();
> > +   bdev = __disk_get_part(disk, partno);
> > +   if (bdev)
> > +           bdgrab(bdev);
> 
> Again I think you need to accommodate for bdgrab() returning NULL here when
> we race with partition destruction...

For that we need to allow bdgrab to return NULL first, but otherwise
this seems like the right way.

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to