]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fdisk: don't use ptes[] in generic code
authorKarel Zak <kzak@redhat.com>
Wed, 12 Jun 2013 15:32:03 +0000 (17:32 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 12 Jun 2013 15:39:09 +0000 (17:39 +0200)
... the array is MBR specific.

Signed-off-by: Karel Zak <kzak@redhat.com>
fdisks/fdisk.c
fdisks/fdiskdoslabel.c

index 623f16856ee97c496cbfddcc7c9a56111830b026..33049da1823dc15229ef6e3d14ae4d536b63292c 100644 (file)
@@ -576,7 +576,6 @@ static void delete_partition(struct fdisk_context *cxt, int partnum)
        if (partnum < 0 || warn_geometry(cxt))
                return;
 
-       ptes[partnum].changed = 1;
        if (fdisk_delete_partition(cxt, partnum) != 0)
                printf(_("Could not delete partition %d\n"), partnum + 1);
        else
@@ -604,7 +603,6 @@ static void change_partition_type(struct fdisk_context *cxt)
                        continue;
 
                if (fdisk_set_partition_type(cxt, i, t) == 0) {
-                       ptes[i].changed = 1;
                        printf (_("Changed type of partition '%s' to '%s'\n"),
                                org_t ? org_t->name : _("Unknown"),
                                    t ?     t->name : _("Unknown"));
@@ -795,8 +793,10 @@ static void print_raw(struct fdisk_context *cxt)
            fdisk_is_disklabel(cxt, GPT))
                print_buffer(cxt, cxt->firstsector);
 
-       else for (i = 3; i < cxt->label->nparts_max; i++)
+       else if (fdisk_is_disklabel(cxt, DOS)) {
+               for (i = 3; i < cxt->label->nparts_max; i++)
                     print_buffer(cxt, ptes[i].sectorbuffer);
+       }
 }
 
 static void __attribute__ ((__noreturn__)) handle_quit(struct fdisk_context *cxt)
index 415f222cad246965316e6a6d330909a45ba7e78c..5fd1da8230be213d7ef8941b444fb75eaa75b628 100644 (file)
@@ -190,6 +190,7 @@ static int dos_delete_partition(struct fdisk_context *cxt, size_t partnum)
                        ptes[ext_index].ext_pointer = NULL;
                        extended_offset = 0;
                }
+               ptes[partnum].changed = 1;
                clear_partition(p);
        } else if (!q->sys_ind && partnum > 4) {
                /* the last one in the chain - just delete */
@@ -1100,6 +1101,7 @@ static int dos_set_parttype(
                "partitions, please see the fdisk manual page for additional "
                "information.\n\n"));
 
+       ptes[partnum].changed = 1;
        p->sys_ind = t->type;
        fdisk_label_set_changed(cxt->label, 1);
        return 0;