diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 7dff6c8beb..571650bfd3 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -26761,11 +26761,15 @@ static void
virDomainResourceDefFormat(virBuffer *buf,
virDomainResourceDef *def)
{
- virBufferAddLit(buf, "\n");
- virBufferAdjustIndent(buf, 2);
- virBufferEscapeString(buf, "%s\n", def->partition);
- virBufferAdjustIndent(buf, -2);
- virBufferAddLit(buf, "\n");
+ g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
+
+ if (!def)
+ return;
+
+ if (def->partition)
+ virBufferEscapeString(&childBuf, "%s\n", def->partition);
+
+ virXMLFormatElement(buf, "resource", NULL, &childBuf);
}
@@ -27918,8 +27922,7 @@ virDomainDefFormatInternalSetRootName(virDomainDef *def,
if (virDomainNumatuneFormatXML(buf, def->numa) < 0)
return -1;
- if (def->resource)
- virDomainResourceDefFormat(buf, def->resource);
+ virDomainResourceDefFormat(buf, def->resource);
for (i = 0; i < def->nsysinfo; i++) {
if (virSysinfoFormat(buf, def->sysinfo[i]) < 0)