diff options
author | Hans de Goede <hdegoede@redhat.com> | 2009-12-17 10:27:40 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-12-19 16:33:12 +0100 |
commit | 676f90d8f0281b8b2bace1f91e8e45bb9d6024f8 (patch) | |
tree | 683428d8f2596b29e051ed48b71e987541ebffd8 | |
parent | 837c9c9d5a21ce14c6e4a48de7f98201ef0fd525 (diff) | |
download | parted-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.c | 5 |
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, |