Call blockdev --rereadpt after sfdisk commands.

On fast machines sfdisk has some sort of race where it
fails to re-read the partition table it has just created
(it's not clear if this is a race in sfdisk, the kernel or
some other component).

This commit works around the problem by calling
blockdev --rereadpt after sfdisk operations, which
experience shows is enough to stop the problem from
happening.
This commit is contained in:
Richard W.M. Jones
2010-09-22 16:35:52 +01:00
parent f6fda69953
commit 956fc5a3fe

View File

@@ -91,7 +91,19 @@ sfdisk (const char *device, int n, int cyls, int heads, int sectors,
udev_settle ();
return 0;
/* sfdisk sometimes fails on fast machines with:
*
* Re-reading the partition table ...
* BLKRRPART: Device or resource busy
* The command to re-read the partition table failed.
* Run partprobe(8), kpartx(8) or reboot your system now,
* before using mkfs
*
* Unclear if this is a bug in sfdisk or the kernel or some
* other component. In any case, reread the partition table
* unconditionally here.
*/
return do_blockdev_rereadpt (device);
}
int