summaryrefslogtreecommitdiffstats
path: root/libfdisk/src/context.c
diff options
context:
space:
mode:
authorKarel Zak2012-12-11 16:37:04 +0100
committerKarel Zak2013-03-11 12:47:29 +0100
commit0559e742a9a85c64dfc73363be6de74adf644d71 (patch)
treee336d8138ac0b4e14cd7189765dd30d756677bde /libfdisk/src/context.c
parentlibfdisk: kill dos_compatible_flag global variable (diff)
downloadkernel-qcow2-util-linux-0559e742a9a85c64dfc73363be6de74adf644d71.tar.gz
kernel-qcow2-util-linux-0559e742a9a85c64dfc73363be6de74adf644d71.tar.xz
kernel-qcow2-util-linux-0559e742a9a85c64dfc73363be6de74adf644d71.zip
libfdisk: improve label deinitialization
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/context.c')
-rw-r--r--libfdisk/src/context.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libfdisk/src/context.c b/libfdisk/src/context.c
index 9801b51f2..6eaa927b0 100644
--- a/libfdisk/src/context.c
+++ b/libfdisk/src/context.c
@@ -58,11 +58,14 @@ struct fdisk_label *fdisk_context_get_label(struct fdisk_context *cxt, const cha
static void reset_context(struct fdisk_context *cxt)
{
- size_t nlbs;
+ size_t nlbs, i;
struct fdisk_label *lbs[ ARRAY_SIZE(cxt->labels) ];
DBG(CONTEXT, dbgprint("\n-----\nresetting context %p", cxt));
- fdisk_deinit_label(cxt); /* reset the current label */
+
+ /* reset drives' private data */
+ for (i = 0; i < cxt->nlabels; i++)
+ fdisk_deinit_label(cxt->labels[i]);
/* remember permanent setting */
memcpy(lbs, cxt->labels, sizeof(lbs));