2014-08-01 12:43:34 +00:00
|
|
|
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(-)
|
|
|
|
|
2015-04-24 15:49:30 +00:00
|
|
|
Index: parted-3.2/libparted/unit.c
|
2014-08-01 12:43:34 +00:00
|
|
|
===================================================================
|
2015-04-24 15:49:30 +00:00
|
|
|
--- parted-3.2.orig/libparted/unit.c
|
|
|
|
+++ parted-3.2/libparted/unit.c
|
2014-08-01 12:43:34 +00:00
|
|
|
@@ -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". */
|
2015-04-24 15:49:30 +00:00
|
|
|
- if (is_power_of_2 (unit_size) && unit != PED_UNIT_PERCENT)
|
2014-08-01 12:43:34 +00:00
|
|
|
+ if (is_power_of_2 (unit_size) &&
|
|
|
|
+ unit != PED_UNIT_PERCENT &&
|
|
|
|
+ unit != PED_UNIT_CYLINDER)
|
|
|
|
radius = 0;
|
|
|
|
|
|
|
|
*sector = num * unit_size / dev->sector_size;
|