[PATCH 0/6] qemu: migration: Rename and refactor migration cookie/parser formatter

Peter Krempa (6): qemu: migration: Rename qemuMigrationBakeCookie to qemuMigrationCookieFormat qemuMigrationCookieNew: Refactor allocation and cleanup qemuMigrationCookieNew: Export qemuMigrationSrcBeginPhase: Use qemuMigrationCookieNew qemuMigrationCookieXMLFormatStr: Remove qemu: migration: Rename qemuMigrationEatCookie to qemuMigrationCookieParse src/qemu/qemu_migration.c | 69 +++++++++++++------------- src/qemu/qemu_migration_cookie.c | 85 ++++++++++++++------------------ src/qemu/qemu_migration_cookie.h | 32 ++++++------ 3 files changed, 88 insertions(+), 98 deletions(-) -- 2.26.2

Use a more descriptive name and move the verb to the end so that the functions conform with the naming policy. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 28 ++++++++++++++-------------- src/qemu/qemu_migration_cookie.c | 14 +++++++------- src/qemu/qemu_migration_cookie.h | 14 +++++++------- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 5708334d2f..33591ba26b 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2257,10 +2257,10 @@ qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver, priv->origname, priv, NULL, 0, 0))) return NULL; - if (qemuMigrationBakeCookie(mig, driver, vm, - QEMU_MIGRATION_SOURCE, - cookieout, cookieoutlen, - cookieFlags) < 0) + if (qemuMigrationCookieFormat(mig, driver, vm, + QEMU_MIGRATION_SOURCE, + cookieout, cookieoutlen, + cookieFlags) < 0) return NULL; if (flags & VIR_MIGRATE_OFFLINE) { @@ -2758,9 +2758,9 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, goto stopjob; done: - if (qemuMigrationBakeCookie(mig, driver, vm, - QEMU_MIGRATION_DESTINATION, - cookieout, cookieoutlen, cookieFlags) < 0) { + if (qemuMigrationCookieFormat(mig, driver, vm, + QEMU_MIGRATION_DESTINATION, + cookieout, cookieoutlen, cookieFlags) < 0) { /* We could tear down the whole guest here, but * cookie data is (so far) non-critical, so that * seems a little harsh. We'll just warn for now. @@ -3917,9 +3917,9 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, QEMU_MIGRATION_COOKIE_STATS; if (qemuMigrationCookieAddPersistent(mig, &persistDef) < 0 || - qemuMigrationBakeCookie(mig, driver, vm, - QEMU_MIGRATION_SOURCE, - cookieout, cookieoutlen, cookieFlags) < 0) { + qemuMigrationCookieFormat(mig, driver, vm, + QEMU_MIGRATION_SOURCE, + cookieout, cookieoutlen, cookieFlags) < 0) { VIR_WARN("Unable to encode migration cookie"); } @@ -5401,10 +5401,10 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, priv->job.completed->statsType = QEMU_DOMAIN_JOB_STATS_TYPE_MIGRATION; } - if (qemuMigrationBakeCookie(mig, driver, vm, - QEMU_MIGRATION_DESTINATION, - cookieout, cookieoutlen, - QEMU_MIGRATION_COOKIE_STATS) < 0) + if (qemuMigrationCookieFormat(mig, driver, vm, + QEMU_MIGRATION_DESTINATION, + cookieout, cookieoutlen, + QEMU_MIGRATION_COOKIE_STATS) < 0) VIR_WARN("Unable to encode migration cookie"); /* Remove completed stats for post-copy, everything but timing fields diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 3ea46e1527..124f61e3ea 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1389,13 +1389,13 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookiePtr mig, int -qemuMigrationBakeCookie(qemuMigrationCookiePtr mig, - virQEMUDriverPtr driver, - virDomainObjPtr dom, - qemuMigrationParty party, - char **cookieout, - int *cookieoutlen, - unsigned int flags) +qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, + virQEMUDriverPtr driver, + virDomainObjPtr dom, + qemuMigrationParty party, + char **cookieout, + int *cookieoutlen, + unsigned int flags) { qemuDomainObjPrivatePtr priv = dom->privateData; diff --git a/src/qemu/qemu_migration_cookie.h b/src/qemu/qemu_migration_cookie.h index 95e7edb899..587f4206b7 100644 --- a/src/qemu/qemu_migration_cookie.h +++ b/src/qemu/qemu_migration_cookie.h @@ -152,13 +152,13 @@ struct _qemuMigrationCookie { int -qemuMigrationBakeCookie(qemuMigrationCookiePtr mig, - virQEMUDriverPtr driver, - virDomainObjPtr dom, - qemuMigrationParty party, - char **cookieout, - int *cookieoutlen, - unsigned int flags); +qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, + virQEMUDriverPtr driver, + virDomainObjPtr dom, + qemuMigrationParty party, + char **cookieout, + int *cookieoutlen, + unsigned int flags); qemuMigrationCookiePtr qemuMigrationEatCookie(virQEMUDriverPtr driver, -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
Use a more descriptive name and move the verb to the end so that the functions conform with the naming policy.
Cookies are delicious delicacies. [0]
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 28 ++++++++++++++-------------- src/qemu/qemu_migration_cookie.c | 14 +++++++------- src/qemu/qemu_migration_cookie.h | 14 +++++++------- 3 files changed, 28 insertions(+), 28 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano [0] https://bugzilla.mozilla.org/show_bug.cgi?id=213186

Move around some code so that we can get rid of the 'cleanup:' label. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 35 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 124f61e3ea..a04b74f092 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def, const char *origname) { qemuMigrationCookiePtr mig = NULL; - const char *name; + unsigned char localHostUUID[VIR_UUID_BUFLEN]; + g_autofree char *localHostname = NULL; - if (VIR_ALLOC(mig) < 0) - goto error; - - if (origname) - name = origname; - else - name = def->name; - mig->name = g_strdup(name); - memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + if (!(localHostname = virGetHostname())) + return NULL; - if (!(mig->localHostname = virGetHostname())) - goto error; - if (virGetHostUUID(mig->localHostuuid) < 0) { + if (virGetHostUUID(localHostUUID) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to obtain host UUID")); - goto error; + return NULL; } - return mig; + mig = g_new0(qemuMigrationCookie, 1); - error: - qemuMigrationCookieFree(mig); - return NULL; + if (origname) + mig->name = g_strdup(origname); + else + mig->name = g_strdup(def->name); + + memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + memcpy(mig->localHostuuid, localHostUUID, VIR_UUID_BUFLEN); + mig->localHostname = g_steal_pointer(&localHostname); + + return mig; } -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
Move around some code so that we can get rid of the 'cleanup:' label.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 35 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 124f61e3ea..a04b74f092 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def, const char *origname) { qemuMigrationCookiePtr mig = NULL; - const char *name; + unsigned char localHostUUID[VIR_UUID_BUFLEN]; + g_autofree char *localHostname = NULL;
- if (VIR_ALLOC(mig) < 0) - goto error; - - if (origname) - name = origname; - else - name = def->name; - mig->name = g_strdup(name); - memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + if (!(localHostname = virGetHostname())) + return NULL;
- if (!(mig->localHostname = virGetHostname())) - goto error;
Note that as of: commit 26d9748ff114a060ee751959d108d062f737f5d9 util: replace gethostname() with g_get_hostname() the virGetHostname function always g_strdup's something.
- if (virGetHostUUID(mig->localHostuuid) < 0) { + if (virGetHostUUID(localHostUUID) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to obtain host UUID")); - goto error; + return NULL; }
- return mig; + mig = g_new0(qemuMigrationCookie, 1);
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

On 9/29/20 5:10 PM, Ján Tomko wrote:
On a Tuesday in 2020, Peter Krempa wrote:
Move around some code so that we can get rid of the 'cleanup:' label.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 35 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 124f61e3ea..a04b74f092 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def, const char *origname) { qemuMigrationCookiePtr mig = NULL; - const char *name; + unsigned char localHostUUID[VIR_UUID_BUFLEN]; + g_autofree char *localHostname = NULL;
- if (VIR_ALLOC(mig) < 0) - goto error; - - if (origname) - name = origname; - else - name = def->name; - mig->name = g_strdup(name); - memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN); + if (!(localHostname = virGetHostname())) + return NULL;
- if (!(mig->localHostname = virGetHostname())) - goto error;
Note that as of: commit 26d9748ff114a060ee751959d108d062f737f5d9 util: replace gethostname() with g_get_hostname() the virGetHostname function always g_strdup's something.
Since you mentioned this, g_get_hostname() is horrible API as it caches the host name on the first run and returns a const char * so there is no way for callers to reflect on changing hostname. We had to drop it in qemu-ga, because if qemu-ga was started before network was configured then hostname change on DHCP wasn't being reflected. Hopefully, it is not a problem for libvirt because we start after NICs are configured. And nobody is really changing the hostname once a host is running, or are they? # hostname; virsh hostname ; hostname asdf; virsh hostname ; hostname bart bart bart asdf Michal

Allow direct use rather than going through qemuMigrationEatCookie with NULL/0 arguments. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 2 +- src/qemu/qemu_migration_cookie.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index a04b74f092..f5c16a8d16 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -275,7 +275,7 @@ qemuMigrationCookieNetworkAlloc(virQEMUDriverPtr driver G_GNUC_UNUSED, } -static qemuMigrationCookiePtr +qemuMigrationCookiePtr qemuMigrationCookieNew(const virDomainDef *def, const char *origname) { diff --git a/src/qemu/qemu_migration_cookie.h b/src/qemu/qemu_migration_cookie.h index 587f4206b7..dee1e9c8b9 100644 --- a/src/qemu/qemu_migration_cookie.h +++ b/src/qemu/qemu_migration_cookie.h @@ -151,6 +151,10 @@ struct _qemuMigrationCookie { }; +qemuMigrationCookiePtr +qemuMigrationCookieNew(const virDomainDef *def, + const char *origname); + int qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, virQEMUDriverPtr driver, -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
Allow direct use rather than going through qemuMigrationEatCookie with NULL/0 arguments.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 2 +- src/qemu/qemu_migration_cookie.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

We need an empty cookie, so use qemuMigrationCookieNew instead of qemuMigrationEatCookie with NULL/0 arguments. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 33591ba26b..7017058089 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2253,8 +2253,7 @@ qemuMigrationSrcBeginPhase(virQEMUDriverPtr driver, if (!(flags & VIR_MIGRATE_OFFLINE)) cookieFlags |= QEMU_MIGRATION_COOKIE_CAPS; - if (!(mig = qemuMigrationEatCookie(driver, vm->def, - priv->origname, priv, NULL, 0, 0))) + if (!(mig = qemuMigrationCookieNew(vm->def, priv->origname))) return NULL; if (qemuMigrationCookieFormat(mig, driver, vm, -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
We need an empty cookie, so use qemuMigrationCookieNew instead of qemuMigrationEatCookie with NULL/0 arguments.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

There is just one caller, inline the code. This also optimizes the code as we no longer have to calculate length of the output XML as it's actually stored in the buffer struct. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index f5c16a8d16..1596ab914b 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -861,20 +861,6 @@ qemuMigrationCookieXMLFormat(virQEMUDriverPtr driver, } -static char * -qemuMigrationCookieXMLFormatStr(virQEMUDriverPtr driver, - virQEMUCapsPtr qemuCaps, - qemuMigrationCookiePtr mig) -{ - g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; - - if (qemuMigrationCookieXMLFormat(driver, qemuCaps, &buf, mig) < 0) - return NULL; - - return virBufferContentAndReset(&buf); -} - - static qemuMigrationCookieGraphicsPtr qemuMigrationCookieGraphicsXMLParse(xmlXPathContextPtr ctxt) { @@ -1397,6 +1383,7 @@ qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, unsigned int flags) { qemuDomainObjPrivatePtr priv = dom->privateData; + g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; if (!cookieout || !cookieoutlen) return 0; @@ -1441,10 +1428,11 @@ qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, qemuMigrationCookieAddCaps(mig, dom, party) < 0) return -1; - if (!(*cookieout = qemuMigrationCookieXMLFormatStr(driver, priv->qemuCaps, mig))) + if (qemuMigrationCookieXMLFormat(driver, priv->qemuCaps, &buf, mig) < 0) return -1; - *cookieoutlen = strlen(*cookieout) + 1; + *cookieoutlen = virBufferUse(&buf) + 1; + *cookieout = virBufferContentAndReset(&buf); VIR_DEBUG("cookielen=%d cookie=%s", *cookieoutlen, *cookieout); -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
There is just one caller, inline the code. This also optimizes the code as we no longer have to calculate length of the output XML as it's
I doubt it's measurable ;)
actually stored in the buffer struct.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_cookie.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

Use a more descriptive name and move the verb to the end so that the functions conform with the naming policy. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 38 ++++++++++++++++---------------- src/qemu/qemu_migration_cookie.c | 14 ++++++------ src/qemu/qemu_migration_cookie.h | 14 ++++++------ 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 7017058089..009b556d0a 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2592,15 +2592,15 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver, /* Parse cookie earlier than adding the domain onto the * domain list. Parsing/validation may fail and there's no * point in having the domain in the list at that point. */ - if (!(mig = qemuMigrationEatCookie(driver, *def, origname, NULL, - cookiein, cookieinlen, - QEMU_MIGRATION_COOKIE_LOCKSTATE | - QEMU_MIGRATION_COOKIE_NBD | - QEMU_MIGRATION_COOKIE_MEMORY_HOTPLUG | - QEMU_MIGRATION_COOKIE_CPU_HOTPLUG | - QEMU_MIGRATION_COOKIE_CPU | - QEMU_MIGRATION_COOKIE_ALLOW_REBOOT | - QEMU_MIGRATION_COOKIE_CAPS))) + if (!(mig = qemuMigrationCookieParse(driver, *def, origname, NULL, + cookiein, cookieinlen, + QEMU_MIGRATION_COOKIE_LOCKSTATE | + QEMU_MIGRATION_COOKIE_NBD | + QEMU_MIGRATION_COOKIE_MEMORY_HOTPLUG | + QEMU_MIGRATION_COOKIE_CPU_HOTPLUG | + QEMU_MIGRATION_COOKIE_CPU | + QEMU_MIGRATION_COOKIE_ALLOW_REBOOT | + QEMU_MIGRATION_COOKIE_CAPS))) goto cleanup; if (!(vm = virDomainObjListAdd(driver->domains, *def, @@ -3112,9 +3112,9 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, ? QEMU_MIGRATION_PHASE_CONFIRM3 : QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED); - if (!(mig = qemuMigrationEatCookie(driver, vm->def, priv->origname, priv, - cookiein, cookieinlen, - QEMU_MIGRATION_COOKIE_STATS))) + if (!(mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv, + cookiein, cookieinlen, + QEMU_MIGRATION_COOKIE_STATS))) return -1; if (retcode == 0) @@ -3662,11 +3662,11 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver, } } - mig = qemuMigrationEatCookie(driver, vm->def, priv->origname, priv, - cookiein, cookieinlen, - cookieFlags | - QEMU_MIGRATION_COOKIE_GRAPHICS | - QEMU_MIGRATION_COOKIE_CAPS); + mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv, + cookiein, cookieinlen, + cookieFlags | + QEMU_MIGRATION_COOKIE_GRAPHICS | + QEMU_MIGRATION_COOKIE_CAPS); if (!mig) goto error; @@ -5198,8 +5198,8 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, * even though VIR_MIGRATE_PERSIST_DEST was not used. */ cookie_flags |= QEMU_MIGRATION_COOKIE_PERSISTENT; - if (!(mig = qemuMigrationEatCookie(driver, vm->def, priv->origname, priv, - cookiein, cookieinlen, cookie_flags))) + if (!(mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv, + cookiein, cookieinlen, cookie_flags))) goto endjob; if (flags & VIR_MIGRATE_OFFLINE) { diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 1596ab914b..c128f541dd 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1441,13 +1441,13 @@ qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, qemuMigrationCookiePtr -qemuMigrationEatCookie(virQEMUDriverPtr driver, - const virDomainDef *def, - const char *origname, - qemuDomainObjPrivatePtr priv, - const char *cookiein, - int cookieinlen, - unsigned int flags) +qemuMigrationCookieParse(virQEMUDriverPtr driver, + const virDomainDef *def, + const char *origname, + qemuDomainObjPrivatePtr priv, + const char *cookiein, + int cookieinlen, + unsigned int flags) { g_autoptr(qemuMigrationCookie) mig = NULL; diff --git a/src/qemu/qemu_migration_cookie.h b/src/qemu/qemu_migration_cookie.h index dee1e9c8b9..f2801b2704 100644 --- a/src/qemu/qemu_migration_cookie.h +++ b/src/qemu/qemu_migration_cookie.h @@ -165,13 +165,13 @@ qemuMigrationCookieFormat(qemuMigrationCookiePtr mig, unsigned int flags); qemuMigrationCookiePtr -qemuMigrationEatCookie(virQEMUDriverPtr driver, - const virDomainDef *def, - const char *origname, - qemuDomainObjPrivatePtr priv, - const char *cookiein, - int cookieinlen, - unsigned int flags); +qemuMigrationCookieParse(virQEMUDriverPtr driver, + const virDomainDef *def, + const char *origname, + qemuDomainObjPrivatePtr priv, + const char *cookiein, + int cookieinlen, + unsigned int flags); void qemuMigrationCookieFree(qemuMigrationCookiePtr mig); -- 2.26.2

On a Tuesday in 2020, Peter Krempa wrote:
Use a more descriptive name and move the verb to the end so that the functions conform with the naming policy.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration.c | 38 ++++++++++++++++---------------- src/qemu/qemu_migration_cookie.c | 14 ++++++------ src/qemu/qemu_migration_cookie.h | 14 ++++++------ 3 files changed, 33 insertions(+), 33 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (3)
-
Ján Tomko
-
Michal Prívozník
-
Peter Krempa