When partprobe does not detect any partition table on the device, it should tell kernel to drop partitions on that device, but it does not. Fix it.
* parted/partprobe.c (process_dev): Drop partitions even if no partition table has been detected on the disk. Addresses: https://bugzilla.novell.com/783419 Signed-off-by: Petr Uzel <[email protected]> --- partprobe/partprobe.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/partprobe/partprobe.c b/partprobe/partprobe.c index 8bccc4f..c959104 100644 --- a/partprobe/partprobe.c +++ b/partprobe/partprobe.c @@ -109,12 +109,23 @@ process_dev (PedDevice* dev) PedDisk* disk; disk_type = ped_disk_probe (dev); - if (!disk_type || !strcmp (disk_type->name, "loop")) + if (disk_type && !strcmp (disk_type->name, "loop")) return 1; - - disk = ped_disk_new (dev); - if (!disk) - goto error; + else if (!disk_type) { + /* Partition table not found, so create dummy, + empty one */ + disk_type = ped_disk_type_get("msdos"); + if (!disk_type) + goto error; + + disk = ped_disk_new_fresh (dev, disk_type); + if (!disk) + goto error_destroy_disk; + } else { + disk = ped_disk_new (dev); + if (!disk) + goto error; + } if (!opt_no_inform) { if (!ped_disk_commit_to_os (disk)) goto error_destroy_disk; -- 1.7.10.4

