summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2009-12-17 10:27:40 +0100
committerJim Meyering <meyering@redhat.com>2009-12-19 16:33:12 +0100
commit676f90d8f0281b8b2bace1f91e8e45bb9d6024f8 (patch)
tree683428d8f2596b29e051ed48b71e987541ebffd8
parent837c9c9d5a21ce14c6e4a48de7f98201ef0fd525 (diff)
downloadparted-676f90d8f0281b8b2bace1f91e8e45bb9d6024f8.tar.gz
dos: honor cylinder alignment disk flag when allocating metadata
* libparted/labels/dos.c (add_startend_metadata): Honor cylinder alignment flag.
-rw-r--r--libparted/labels/dos.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libparted/labels/dos.c b/libparted/labels/dos.c
index 2566435..d1df0c7 100644
--- a/libparted/labels/dos.c
+++ b/libparted/labels/dos.c
@@ -2209,7 +2209,10 @@ add_startend_metadata (PedDisk* disk)
else
init_end = PED_MIN (dev->bios_geom.sectors - 1, init_end - 1);
- if (!get_end_last_nonfree_part(disk, &final_start))
+ DosDiskData *disk_specific = disk->disk_specific;
+ if (!disk_specific->cylinder_alignment)
+ final_start = dev->length - 1;
+ else if (!get_end_last_nonfree_part(disk, &final_start))
final_start = ped_round_down_to (dev->length, cyl_size);
else
final_start = PED_MAX (final_start + 1,