From 342ed1399f5c4a8257e41726e1a2600a9496aeb6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 9 Feb 2010 11:06:42 +0100 Subject: [PATCH] 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 --- fdisk/fdisk.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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; -- 2.39.5