From 9d225ea284368f2774f737711c2fecc135dfcf05 Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Thu, 27 May 2021 15:32:17 +0200 Subject: [PATCH] virDomainDiskDefParseSource: parse source bits from driver element Before the mentioned commit we always parsed the whole disk definition for qemuDomainBlockCopy API but we only used the @src part. Based on that assumption the code was changed to parse only the disk element. Unfortunately that is not correct as we need to parse some parts of element as well. Fixes: 0202467c4ba8663db2304b140af609f93a9b3091 Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa --- src/conf/domain_conf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index f7920bce2c..f424ed731f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -15141,6 +15141,7 @@ virDomainDiskDefParseSource(const char *xmlStr, g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; g_autoptr(virStorageSource) src = NULL; + xmlNodePtr driverNode; if (!(xml = virXMLParseStringCtxtRoot(xmlStr, _("(disk_definition)"), "disk", &ctxt))) return NULL; @@ -15148,6 +15149,11 @@ virDomainDiskDefParseSource(const char *xmlStr, if (!(src = virDomainDiskDefParseSourceXML(xmlopt, ctxt->node, ctxt, flags))) return NULL; + if ((driverNode = virXPathNode("./driver", ctxt))) { + if (virDomainDiskDefDriverSourceParseXML(src, driverNode, ctxt) < 0) + return NULL; + } + if (virStorageSourceIsEmpty(src)) { virReportError(VIR_ERR_NO_SOURCE, NULL); return NULL; -- 2.47.2