[parted-devel] [PATCH 3/6] partprobe: remove partitions when there is no PT
Petr Uzel
petr.uzel at suse.cz
Mon Oct 15 08:31:52 UTC 2012
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 <petr.uzel at suse.cz>
---
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
More information about the parted-devel
mailing list