From dc4997ee498486135e46ca0e121835935bbf26db Mon Sep 17 00:00:00 2001 Message-Id: From: Peter Krempa Date: Tue, 4 Feb 2020 15:07:53 +0100 Subject: [PATCH] qemu: checkpoint: Use disk definition directly when creating checkpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lookup the whole disk definition rather than just the node name. Signed-off-by: Peter Krempa Reviewed-by: Eric Blake (cherry picked from commit 7973f7d7926ac9dbc5464e6be6eb2aaacecc2251) https://bugzilla.redhat.com/show_bug.cgi?id=1207659 Message-Id: Reviewed-by: Ján Tomko --- src/qemu/qemu_checkpoint.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c index 0aa854324b..03a8321135 100644 --- a/src/qemu/qemu_checkpoint.c +++ b/src/qemu/qemu_checkpoint.c @@ -320,12 +320,16 @@ qemuCheckpointAddActions(virDomainObjPtr vm, for (i = 0; i < def->ndisks; i++) { virDomainCheckpointDiskDef *chkdisk = &def->disks[i]; - const char *node; + virDomainDiskDefPtr domdisk = virDomainDiskByTarget(vm->def, chkdisk->name); - if (chkdisk->type != VIR_DOMAIN_CHECKPOINT_TYPE_BITMAP) + /* checkpoint definition validator mandates that the corresponding + * domdisk should exist */ + if (!domdisk || + chkdisk->type != VIR_DOMAIN_CHECKPOINT_TYPE_BITMAP) continue; - node = qemuDomainDiskNodeFormatLookup(vm, chkdisk->name); - if (qemuMonitorTransactionBitmapAdd(actions, node, chkdisk->bitmap, true, false, 0) < 0) + + if (qemuMonitorTransactionBitmapAdd(actions, domdisk->src->nodeformat, + chkdisk->bitmap, true, false, 0) < 0) return -1; /* We only want one active bitmap for a disk along the @@ -348,7 +352,9 @@ qemuCheckpointAddActions(virDomainObjPtr vm, if (STRNEQ(chkdisk->name, disk2->name) || disk2->type != VIR_DOMAIN_CHECKPOINT_TYPE_BITMAP) continue; - if (qemuMonitorTransactionBitmapDisable(actions, node, disk2->bitmap) < 0) + if (qemuMonitorTransactionBitmapDisable(actions, + domdisk->src->nodeformat, + disk2->bitmap) < 0) return -1; search_parents = false; break; -- 2.25.0