When retrying mkpart when the part addition to the disk with the constraint
derived from the user specified start and end fails, keep the device constraint
otherwise the result of the retry may end up being not properly aligned.
---
parted/parted.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/parted/parted.c b/parted/parted.c
index 30500db..b44519b 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -776,7 +776,6 @@ do_mkpart (PedDevice** dev)
final_constraint = ped_constraint_intersect (user_constraint,
dev_constraint);
ped_constraint_destroy (user_constraint);
- ped_constraint_destroy (dev_constraint);
if (!final_constraint)
goto error_destroy_simple_constraints;
@@ -787,8 +786,7 @@ do_mkpart (PedDevice** dev)
if (!added_ok) {
ped_exception_leave_all();
- if (ped_disk_add_partition (disk, part,
- ped_constraint_any (*dev))) {
+ if (ped_disk_add_partition (disk, part, dev_constraint)) {
start_usr = ped_unit_format (*dev, start);
end_usr = ped_unit_format (*dev, end);
start_sol = ped_unit_format (*dev, part->geom.start);
@@ -829,6 +827,7 @@ do_mkpart (PedDevice** dev)
ped_exception_leave_all();
}
ped_exception_catch();
+ ped_constraint_destroy (dev_constraint);
/* set minor attributes */
if (part_name)
@@ -862,6 +861,7 @@ do_mkpart (PedDevice** dev)
error_remove_part:
ped_disk_remove_partition (disk, part);
error_destroy_simple_constraints:
+ ped_constraint_destroy (dev_constraint);
ped_partition_destroy (part);
error_destroy_disk:
ped_disk_destroy (disk);
--
1.6.5.1
_______________________________________________
bug-parted mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-parted