[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: |
Wed, 10 Feb 2010 14:12:58 +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 06b9f6c..69451a8 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,
@@ -1352,6 +1364,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) {
@@ -1634,6 +1651,8 @@ do_print (PedDevice** dev)
return 1;
+error_destroy_disk:
+ ped_disk_destroy (disk);
error:
return 0;
}
@@ -1861,6 +1880,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 1/7] linux: Fixup phys_sector_size setting, Hans de Goede, 2010/02/10
- [PATCH parted 3/7] linux: handle incomplete topology information, Hans de Goede, 2010/02/10
- [PATCH parted 6/7] parted: Change default alignment to optimal, Hans de Goede, 2010/02/10
- [PATCH parted 4/7] parted: Honor --align option also in mkpartfs, resize and print cmds,
Hans de Goede <=
- [PATCH parted 7/7] dasd: Fix NULL pointer dereference in dasd_read, Hans de Goede, 2010/02/10
- [PATCH parted 5/7] parted: change warnings when initial constrained mkpart fails, Hans de Goede, 2010/02/10
- [PATCH parted 2/7] libparted: Give device_get_*_alignment sane defaults, Hans de Goede, 2010/02/10
- Re: [PATCH parted 1/7] linux: Fixup phys_sector_size setting, Jim Meyering, 2010/02/10