[Parted-maintainers] [parted-devel] a problem about 100% indicating the whole disk

Phillip Susi psusi at ubuntu.com
Tue Nov 5 17:58:37 UTC 2013


On 10/31/2013 6:10 AM, zhuyj wrote:
> I checked the source code, and I found that it is difficult to modify.
> Since 100% mean to use the whole disk, so sector is correct to be equal
> to dev->length. And radius is equal to 0 since unit_size is power of 2.
> So if we use 100% in the source code, it is difficult to avoid this
> failure.
> 
> Thus I made the following patch. The main object is to replace 100% with
> -1. Finally, this failure can be avoided.

That only fixes it for 100%, other percentages will still get the
incorrect treatment.  This should be easily fixed:

-------------- next part --------------
From e3bc2d0c335ec786adbe71ea67ab4c827e9d6393 Mon Sep 17 00:00:00 2001
From: Phillip Susi <psusi at 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.
---
 libparted/unit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libparted/unit.c b/libparted/unit.c
index e545985..ff479f1 100644
--- a/libparted/unit.c
+++ b/libparted/unit.c
@@ -548,7 +548,7 @@ ped_unit_parse_custom (const char* str, const PedDevice* dev, PedUnit unit,
 	   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)
 		radius = 0;
 
 	*sector = num * unit_size / dev->sector_size;
-- 
1.8.1.2



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 553 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/parted-maintainers/attachments/20131105/f19bd77a/attachment.sig>


More information about the Parted-maintainers mailing list