From: Ian Wienand Date: Thu, 8 Oct 2015 04:00:44 +0000 (+1100) Subject: libfdisk: Detect out-of-space when adding new primary partition X-Git-Tag: v2.28-rc1~313 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=240ddd3a5fc67529c5ad9ef38f8597305393f0a7;p=thirdparty%2Futil-linux.git libfdisk: Detect out-of-space when adding new primary partition I got a bit confused with the interaction below: Command (m for help): p Disk /dev/sda: 41 GiB, 43965677568 bytes, 85870464 sectors ... Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 1026047 1024000 500M 83 Linux /dev/sda2 1026048 85868543 84842496 40.5G 8e Linux LVM Command (m for help): n To create more partitions, first replace a primary with an extended partition. I knew I should have had two primary partitions available, but I did not notice that the disk was seen as full (I was trying to grow it) This change detects available primary partitions, and if so indicates we are out of space, rather than out of partitions. Signed-off-by: Ian Wienand --- diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index b337c0bec0..c04ee7106b 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -1598,8 +1598,11 @@ static int dos_add_partition(struct fdisk_context *cxt, } rc = add_logical(cxt, pa, &res); } else { + if (free_primary) + fdisk_info(cxt, _("All space for primary partitions is in use.")); + else /* TRANSLATORS: Try to keep this within 80 characters. */ - fdisk_info(cxt, _("To create more partitions, first replace " + fdisk_info(cxt, _("To create more partitions, first replace " "a primary with an extended partition.")); return -EINVAL; }