]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: Detect out-of-space when adding new primary partition
authorIan Wienand <iwienand@redhat.com>
Thu, 8 Oct 2015 04:00:44 +0000 (15:00 +1100)
committerKarel Zak <kzak@redhat.com>
Fri, 9 Oct 2015 11:07:41 +0000 (13:07 +0200)
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 <iwienand@redhat.com>
libfdisk/src/dos.c

index b337c0bec0d190582c5a491bde00c24407f06e20..c04ee7106bb1f91744eb27f2a1224186ea76a6a9 100644 (file)
@@ -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;
                }