From: Karel Zak Date: Tue, 9 Feb 2010 10:06:42 +0000 (+0100) Subject: fdisk: fix default first sector X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=342ed1399f5c4a8257e41726e1a2600a9496aeb6;p=util-linux fdisk: fix default first sector The previous release 2.17 introduces aligned defaults for the first and last sectors on the partition. Unfortunately, there is endless loop when the code looks for first unused aligned sector. Signed-off-by: Karel Zak --- diff --git a/fdisk/fdisk.c b/fdisk/fdisk.c index dc5dfb9d..ddfd24d1 100644 --- a/fdisk/fdisk.c +++ b/fdisk/fdisk.c @@ -2309,17 +2309,16 @@ add_partition(int n, int sys) { snprintf(mesg, sizeof(mesg), _("First %s"), str_units(SINGULAR)); do { - unsigned long long dflt, dflt_tmp; + unsigned long long dflt, aligned; temp = start; - dflt = start = get_unused_start(n, start, first, last); /* the default sector should be aligned and unused */ do { - dflt_tmp = align_lba_in_range(dflt, start, limit); - dflt = get_unused_start(n, dflt_tmp, first, last); - } while (dflt != dflt_tmp && dflt > dflt_tmp && dflt < limit); + aligned = align_lba_in_range(dflt, dflt, limit); + dflt = get_unused_start(n, aligned, first, last); + } while (dflt != aligned && dflt > aligned && dflt < limit); if (dflt >= limit) dflt = start;