From 1f7f5b01cbfb3c703f3bcccae20292d5269a4248 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 25 Sep 2023 16:34:39 +0200 Subject: [PATCH] qemu: domain: Convert the status XML code for 'storage' nodenames to new accessors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the new accessors in the private XML formatters and parsers and the recovery code. Specifically in all instances we use the proper (not effective) storage nodename. In the virStorageSource private data it is what we need to store. In blockjobs status XML it simply serves us to find the appropriate 'virStorageSource' struct so using the storage layer node name is simpler. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_domain.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f891defa91..78dc99d243 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2000,7 +2000,7 @@ qemuStorageSourcePrivateDataParse(xmlXPathContextPtr ctxt, int enccount; xmlNodePtr nbdkitnode = NULL; - src->nodestorage = virXPathString("string(./nodenames/nodename[@type='storage']/@name)", ctxt); + qemuBlockStorageSourceSetStorageNodename(src, virXPathString("string(./nodenames/nodename[@type='storage']/@name)", ctxt)); src->nodeformat = virXPathString("string(./nodenames/nodename[@type='format']/@name)", ctxt); src->tlsAlias = virXPathString("string(./objects/TLSx509/@alias)", ctxt); @@ -2111,7 +2111,7 @@ qemuStorageSourcePrivateDataFormat(virStorageSource *src, g_auto(virBuffer) objectsChildBuf = VIR_BUFFER_INIT_CHILD(buf); g_auto(virBuffer) fdsetsChildBuf = VIR_BUFFER_INIT_CHILD(buf); - virBufferEscapeString(&nodenamesChildBuf, "\n", src->nodestorage); + virBufferEscapeString(&nodenamesChildBuf, "\n", qemuBlockStorageSourceGetStorageNodename(src)); virBufferEscapeString(&nodenamesChildBuf, "\n", src->nodeformat); if (src->sliceStorage) @@ -2288,13 +2288,16 @@ qemuDomainPrivateBlockJobFormatCommit(qemuBlockJobData *job, g_auto(virBuffer) disabledBitmapsBuf = VIR_BUFFER_INIT_CHILD(buf); if (job->data.commit.base) - virBufferAsprintf(buf, "\n", job->data.commit.base->nodestorage); + virBufferAsprintf(buf, "\n", + qemuBlockStorageSourceGetStorageNodename(job->data.commit.base)); if (job->data.commit.top) - virBufferAsprintf(buf, "\n", job->data.commit.top->nodestorage); + virBufferAsprintf(buf, "\n", + qemuBlockStorageSourceGetStorageNodename(job->data.commit.top)); if (job->data.commit.topparent) - virBufferAsprintf(buf, "\n", job->data.commit.topparent->nodestorage); + virBufferAsprintf(buf, "\n", + qemuBlockStorageSourceGetStorageNodename(job->data.commit.topparent)); if (job->data.commit.deleteCommittedImages) virBufferAddLit(buf, "\n"); @@ -2357,7 +2360,8 @@ qemuDomainObjPrivateXMLFormatBlockjobIterator(void *payload, switch ((qemuBlockJobType) job->type) { case QEMU_BLOCKJOB_TYPE_PULL: if (job->data.pull.base) - virBufferAsprintf(&childBuf, "\n", job->data.pull.base->nodestorage); + virBufferAsprintf(&childBuf, "\n", + qemuBlockStorageSourceGetStorageNodename(job->data.pull.base)); break; case QEMU_BLOCKJOB_TYPE_COMMIT: @@ -6060,8 +6064,8 @@ qemuDomainDeviceHostdevDefPostParseRestoreBackendAlias(virDomainHostdevDef *host return -1; } - if (!src->nodestorage) - src->nodestorage = g_strdup_printf("libvirt-%s-backend", hostdev->info->alias); + if (!qemuBlockStorageSourceGetStorageNodename(src)) + qemuBlockStorageSourceSetStorageNodename(src, g_strdup_printf("libvirt-%s-backend", hostdev->info->alias)); return 0; }