From: Peter Krempa Date: Wed, 8 Jan 2020 07:10:35 +0000 (+0100) Subject: qemu: checkpoint: Use disk definition directly when creating checkpoint X-Git-Tag: v6.1.0-rc1~396 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7973f7d7926ac9dbc5464e6be6eb2aaacecc2251;p=thirdparty%2Flibvirt.git qemu: checkpoint: Use disk definition directly when creating checkpoint Lookup the whole disk definition rather than just the node name. Signed-off-by: Peter Krempa Reviewed-by: Eric Blake --- 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;