]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: use fdisk_add_partition() for unused partno
authorKarel Zak <kzak@redhat.com>
Tue, 10 May 2016 08:52:31 +0000 (10:52 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 10 May 2016 08:52:31 +0000 (10:52 +0200)
For example:

   sfdisk -N <parno>

may address unused partition. In this case we need to redirect from
fdisk_set_partition() to fdisk_add_partition() and follow default
setting (used all free space).

Signed-off-by: Karel Zak <kzak@redhat.com>
libfdisk/src/partition.c

index 4fbd1e4681c3d96ded0c9de036368f769d231451..a98620b041dbd71e200c18be9e929e3f964616d4 100644 (file)
@@ -1235,6 +1235,11 @@ int fdisk_set_partition(struct fdisk_context *cxt, size_t partno,
 
        pa->fs_probed = 0;
 
+       if (!fdisk_is_partition_used(cxt, partno)) {
+               pa->partno = partno;
+               return fdisk_add_partition(cxt, pa, NULL);
+       }
+
        if (pa->resize || fdisk_partition_has_start(pa) || fdisk_partition_has_size(pa)) {
                xpa = __copy_partition(pa);
                xpa->movestart = 0;