parted/libparted-make-sure-not-to-treat-percentages-and-cyls-as-exact.patch
Petr Uzel 24fd71348c - Fix a bug where cylinders can be treated by parted as exact
location, which prevents it from adjusting partition/start end.
  (bnc#880369)
  - libparted-make-sure-not-to-treat-percentages-and-cyls-as-exact.patch

OBS-URL: https://build.opensuse.org/package/show/Base:System/parted?expand=0&rev=99
2014-08-01 12:43:34 +00:00

32 lines
1.1 KiB
Diff

From 01900e056ec250836d15b5f5c3f59a8e1454b781 Mon Sep 17 00:00:00 2001
From: Phillip Susi <psusi@ubuntu.com>
Date: Mon, 4 Nov 2013 13:10:09 -0500
Subject: [PATCH] libparted: make sure not to treat percentages as exact
If 1% of the drive size worked out ot be an even power of
two, it would trigger the exact placement. Add an exception
for the percent units.
Petr Uzel <puzel@suse.cz>:
Also avoid this logic when the unit is specified as cylinders.
---
libparted/unit.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: parted-3.1/libparted/unit.c
===================================================================
--- parted-3.1.orig/libparted/unit.c
+++ parted-3.1/libparted/unit.c
@@ -551,7 +551,9 @@ ped_unit_parse_custom (const char* str,
do not use 4MiB as the range. Rather, presume that they
are specifying precisely the starting or ending number,
and treat "4MiB" just as we would treat "4194304B". */
- if (is_power_of_2 (unit_size))
+ if (is_power_of_2 (unit_size) &&
+ unit != PED_UNIT_PERCENT &&
+ unit != PED_UNIT_CYLINDER)
radius = 0;
*sector = num * unit_size / dev->sector_size;