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;
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;
}