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 <source>
element.
Unfortunately that is not correct as we need to parse some parts of
<driver> element as well.
Fixes: 0202467c4ba8663db2304b140af609f93a9b3091
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
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.31.1