Looks like the switch to go through blkdev_get_by_dev means we now ignore the return value from bdev_disk_changed. Something like the untested patch below should fix it: diff --git a/block/ioctl.c b/block/ioctl.c index ff241e663c018f..8ba1ed8defd0bb 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -89,6 +89,8 @@ static int blkdev_reread_part(struct block_device *bdev, fmode_t mode) return -EINVAL; if (!capable(CAP_SYS_ADMIN)) return -EACCES; + if (bdev->bd_part_count) + return -EBUSY; /* * Reopen the device to revalidate the driver state and force a