diff options
-rw-r--r-- | libfdisk/src/gpt.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index 8947a722f..d7b398678 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -1997,7 +1997,7 @@ static int gpt_add_partition( user_l = user_f + pa->size - 1; DBG(LABEL, ul_debug("size defined: %ju, end: %ju (last possible: %ju)", pa->size, user_l, dflt_l)); - if (user_l != dflt_l) + if (user_l != dflt_l && !pa->size_explicit) user_l = fdisk_align_lba_in_range(cxt, user_l, user_f, dflt_l) - 1; } else if (pa && pa->end_follow_default) { @@ -2029,7 +2029,10 @@ static int gpt_add_partition( if (user_l + (cxt->grain / cxt->sector_size) > dflt_l) user_l = dflt_l; */ - } if (user_l > user_f && user_l <= disk_l) + } else + user_l -= 1; + + if (user_l > user_f && user_l <= disk_l) break; } } |