[libvirt] [PATCH v2 12/29] conf: Use virXMLFormatElement in virDomainDiskBackingStoreFormat

Peter Krempa pkrempa at redhat.com
Fri Mar 22 18:00:48 UTC 2019


Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_conf.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5adca7c29c..89e2900df2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -23826,8 +23826,12 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf,
                                 virDomainXMLOptionPtr xmlopt,
                                 unsigned int flags)
 {
+    VIR_AUTOCLEAN(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
+    VIR_AUTOCLEAN(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
     bool inactive = flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE;

+    virBufferSetChildIndent(&childBuf, buf);
+
     if (!backingStore)
         return 0;

@@ -23847,22 +23851,23 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf,
         return -1;
     }

-    virBufferAsprintf(buf, "<backingStore type='%s'",
+    virBufferAsprintf(&attrBuf, " type='%s'",
                       virStorageTypeToString(backingStore->type));
     if (backingStore->id != 0)
-        virBufferAsprintf(buf, " index='%u'", backingStore->id);
-    virBufferAddLit(buf, ">\n");
-    virBufferAdjustIndent(buf, 2);
+        virBufferAsprintf(&attrBuf, " index='%u'", backingStore->id);

-    virBufferAsprintf(buf, "<format type='%s'/>\n",
+    virBufferAsprintf(&childBuf, "<format type='%s'/>\n",
                       virStorageFileFormatTypeToString(backingStore->format));
-    if (virDomainDiskSourceFormat(buf, backingStore, 0, false, flags, xmlopt) < 0 ||
-        virDomainDiskBackingStoreFormat(buf, backingStore->backingStore,
+    if (virDomainDiskSourceFormat(&childBuf, backingStore, 0, false, flags, xmlopt) < 0)
+        return -1;
+
+    if (virDomainDiskBackingStoreFormat(&childBuf, backingStore->backingStore,
                                         xmlopt, flags) < 0)
         return -1;

-    virBufferAdjustIndent(buf, -2);
-    virBufferAddLit(buf, "</backingStore>\n");
+    if (virXMLFormatElement(buf, "backingStore", &attrBuf, &childBuf) < 0)
+        return -1;
+
     return 0;
 }

-- 
2.20.1




More information about the libvir-list mailing list