[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH parted 4/7] parted: Honor --align option also in mkpartfs, resize
From: |
Hans de Goede |
Subject: |
[PATCH parted 4/7] parted: Honor --align option also in mkpartfs, resize and print cmds |
Date: |
Sat, 30 Jan 2010 17:53:50 +0100 |
parted/parted.c (do_mkpartfs,do_print,do_resize): honor --align
---
parted/parted.c | 26 +++++++++++++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/parted/parted.c b/parted/parted.c
index c4d1779..5ba8bbf 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -949,6 +949,11 @@ do_mkpartfs (PedDevice** dev)
if (!disk)
goto error;
+ if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT))
+ if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT,
+ alignment == ALIGNMENT_CYLINDER))
+ goto error_destroy_disk;
+
if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED))
{
part_type = PED_PARTITION_NORMAL;
} else {
@@ -989,7 +994,14 @@ do_mkpartfs (PedDevice** dev)
range_end);
PED_ASSERT (user_constraint != NULL, return 0);
- dev_constraint = ped_device_get_constraint (*dev);
+ if (alignment == ALIGNMENT_OPTIMAL)
+ dev_constraint =
+ ped_device_get_optimal_aligned_constraint(*dev);
+ else if (alignment == ALIGNMENT_MINIMAL)
+ dev_constraint =
+ ped_device_get_minimal_aligned_constraint(*dev);
+ else
+ dev_constraint = ped_device_get_constraint(*dev);
PED_ASSERT (dev_constraint != NULL, return 0);
final_constraint = ped_constraint_intersect (user_constraint,
@@ -1353,6 +1365,11 @@ do_print (PedDevice** dev)
if (!disk)
goto error;
+ if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT))
+ if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT,
+ alignment == ALIGNMENT_CYLINDER))
+ goto error_destroy_disk;
+
peek_word = command_line_peek_word ();
if (peek_word) {
if (strncmp (peek_word, "devices", 7) == 0) {
@@ -1635,6 +1652,8 @@ do_print (PedDevice** dev)
return 1;
+error_destroy_disk:
+ ped_disk_destroy (disk);
error:
return 0;
}
@@ -1862,6 +1881,11 @@ do_resize (PedDevice** dev)
if (!disk)
goto error;
+ if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT))
+ if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT,
+ alignment == ALIGNMENT_CYLINDER))
+ goto error_destroy_disk;
+
if (!command_line_get_partition (_("Partition number?"), disk, &part))
goto error_destroy_disk;
if (part->type != PED_PARTITION_EXTENDED) {
--
1.6.6
[PATCH parted 4/7] parted: Honor --align option also in mkpartfs, resize and print cmds,
Hans de Goede <=
[PATCH parted 3/7] linux: handle incomplete topology information, Hans de Goede, 2010/01/30
[PATCH parted 2/7] libparted: Give device_get_*_alignment sane defaults, Hans de Goede, 2010/01/30
[PATCH parted 7/7] parted: Change default alignment to optimal, Hans de Goede, 2010/01/30