diff --git a/block/partitions/core.c b/block/partitions/core.c index 8c5295ca8ea6c337265eda4e9c88ab8046db9014..a94d296d7aeddb71e30b4e549509f3a42e0bfb0e 100644 --- a/block/partitions/core.c +++ b/block/partitions/core.c @@ -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)))