Jens, can you pick this one up? On Tue, Apr 28, 2020 at 10:52:03AM +0200, Christoph Hellwig wrote: > When replacing the bd_super check with a bd_openers I followed a logical > conclusion, which turns out to be utterly wrong. When a block device has > bd_super sets it has a mount file system on it (although not every > mounted file system sets bd_super), but that also implies it doesn't even > have partitions to start with. > > So instead of trying to come up with a logical check for all openers, > just remove the check entirely. > > Fixes: d3ef5536274f ("block: fix busy device checking in blk_drop_partitions") > Fixes: cb6b771b05c3 ("block: fix busy device checking in blk_drop_partitions again") > Reported-by: Michal Koutný <mkoutny@xxxxxxxx> > Reported-by: Yang Xu <xuyang2018.jy@xxxxxxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > 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 bc1ded1331b14..9ef48a8cff867 100644 > --- a/block/partitions/core.c > +++ b/block/partitions/core.c > @@ -496,7 +496,7 @@ int blk_drop_partitions(struct gendisk *disk, struct block_device *bdev) > > if (!disk_part_scan_enabled(disk)) > return 0; > - if (bdev->bd_part_count || bdev->bd_openers > 1) > + if (bdev->bd_part_count) > return -EBUSY; > res = invalidate_partition(disk, 0); > if (res) > -- > 2.26.1 ---end quoted text---