"resized disk %s\n",
                       bdev->bd_disk ? bdev->bd_disk->disk_name : "");
        }
-
-       if (!bdev->bd_disk)
-               return;
-       if (disk_part_scan_enabled(bdev->bd_disk))
-               bdev->bd_invalidated = 1;
+       bdev->bd_invalidated = 1;
 }
 
 /**
 
 static void bdev_disk_changed(struct block_device *bdev, bool invalidate)
 {
-       if (invalidate)
-               invalidate_partitions(bdev->bd_disk, bdev);
-       else
-               rescan_partitions(bdev->bd_disk, bdev);
+       if (disk_part_scan_enabled(bdev->bd_disk)) {
+               if (invalidate)
+                       invalidate_partitions(bdev->bd_disk, bdev);
+               else
+                       rescan_partitions(bdev->bd_disk, bdev);
+       } else {
+               check_disk_size_change(bdev->bd_disk, bdev, !invalidate);
+               bdev->bd_invalidated = 0;
+       }
 }
 
 /*