Commit e669c1da authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: don't call invalidate_partition from blk_drop_partitions



Given that the device must not be busy, most of the calls from
invalidate_partition that are related to file system metadata are
guranteed to not happen.  Just open code the calls to sync_blockdev
and invalidate_bdev instead.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 21be6cdc
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -607,15 +607,14 @@ int blk_drop_partitions(struct block_device *bdev)
{
	struct disk_part_iter piter;
	struct hd_struct *part;
	int res;

	if (!disk_part_scan_enabled(bdev->bd_disk))
		return 0;
	if (bdev->bd_part_count || bdev->bd_openers > 1)
		return -EBUSY;
	res = invalidate_partition(bdev->bd_disk, 0);
	if (res)
		return res;

	sync_blockdev(bdev);
	invalidate_bdev(bdev);

	disk_part_iter_init(&piter, bdev->bd_disk, DISK_PITER_INCL_EMPTY);
	while ((part = disk_part_iter_next(&piter)))