diff options
author | Aaro Koskinen | 2013-02-09 21:12:26 +0200 |
---|---|---|
committer | Denys Vlasenko | 2013-02-11 00:22:59 +0100 |
commit | cf5731bcbd3b65c5efb9a8b24ed6b95a0a239e67 (patch) | |
tree | 304bafa44c5909c5d591dd07948d9f24bd1f1017 | |
parent | 1bd5ca2f530f11e27a1ae13bba592d9f725ce341 (diff) | |
download | busybox-cf5731bcbd3b65c5efb9a8b24ed6b95a0a239e67.zip busybox-cf5731bcbd3b65c5efb9a8b24ed6b95a0a239e67.tar.gz |
fdisk_sun: fix partition alignment
When the display unit is sectors, the partition alignment will convert
the partition start to a wrong unit (it should always be in sectors). Fix
this.
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | util-linux/fdisk_sun.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/util-linux/fdisk_sun.c b/util-linux/fdisk_sun.c index d11c540..e32740d 100644 --- a/util-linux/fdisk_sun.c +++ b/util-linux/fdisk_sun.c @@ -498,11 +498,14 @@ add_sun_partition(int n, int sys) else first = read_int(scround(start), scround(stop)+1, scround(stop), 0, mesg); - if (display_in_cyl_units) + if (display_in_cyl_units) { first *= units_per_sector; - else + } else { /* Starting sector has to be properly aligned */ - first = (first + g_heads * g_sectors - 1) / (g_heads * g_sectors); + first = (first + g_heads * g_sectors - 1) / + (g_heads * g_sectors); + first *= g_heads * g_sectors; + } if (n == 2 && first != 0) printf("\ It is highly recommended that the third partition covers the whole disk\n\ |