diff options
author | Christoph Hellwig <hch@lst.de> | 2020-04-28 10:52:03 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-04-30 10:25:43 -0600 |
commit | 10c70d95c0f2f9a6f52d0e33243d2877370cef51 (patch) | |
tree | 6a0a7bb8aa945be7c521cbc1c93053ca9706b550 /block | |
parent | 47ed39e0625d3a47b6d6c0a12942b62fb802298f (diff) | |
download | lwn-10c70d95c0f2f9a6f52d0e33243d2877370cef51.tar.gz lwn-10c70d95c0f2f9a6f52d0e33243d2877370cef51.zip |
block: remove the bd_openers checks in blk_drop_partitions
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@suse.com>
Reported-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/partitions/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/partitions/core.c b/block/partitions/core.c index bc1ded1331b1..9ef48a8cff86 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) |