From: Michal Privoznik Date: Thu, 7 Jul 2022 14:29:18 +0000 (+0200) Subject: domain_conf: Format more often X-Git-Tag: v8.6.0-rc1~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24fa7004e47ce86b92bc23c1f2ef9c3d6152c3a8;p=thirdparty%2Flibvirt.git domain_conf: Format more often The element is formatted inside virDomainDefaultIOThreadDefFormat() which is called only from virDomainDefIOThreadsFormat() (so that IOThread related stuff is formatted calling one function). However, when there are no defined (or only autoallocated ones are present), then the outer formatting function exits early never calling the formatter. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index b639022396..24f17a8b91 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -26349,40 +26349,38 @@ static void virDomainDefIOThreadsFormat(virBuffer *buf, const virDomainDef *def) { - g_auto(virBuffer) childrenBuf = VIR_BUFFER_INIT_CHILD(buf); - size_t i; - - if (def->niothreadids == 0) - return; + if (def->niothreadids > 0) { + virBufferAsprintf(buf, "%zu\n", + def->niothreadids); + } - virBufferAsprintf(buf, "%zu\n", - def->niothreadids); + if (virDomainDefIothreadShouldFormat(def)) { + g_auto(virBuffer) childrenBuf = VIR_BUFFER_INIT_CHILD(buf); + size_t i; - if (!virDomainDefIothreadShouldFormat(def)) - return; + for (i = 0; i < def->niothreadids; i++) { + virDomainIOThreadIDDef *iothread = def->iothreadids[i]; + g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; - for (i = 0; i < def->niothreadids; i++) { - virDomainIOThreadIDDef *iothread = def->iothreadids[i]; - g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER; + virBufferAsprintf(&attrBuf, " id='%u'", + iothread->iothread_id); - virBufferAsprintf(&attrBuf, " id='%u'", - iothread->iothread_id); + if (iothread->thread_pool_min >= 0) { + virBufferAsprintf(&attrBuf, " thread_pool_min='%d'", + iothread->thread_pool_min); + } - if (iothread->thread_pool_min >= 0) { - virBufferAsprintf(&attrBuf, " thread_pool_min='%d'", - iothread->thread_pool_min); - } + if (iothread->thread_pool_max >= 0) { + virBufferAsprintf(&attrBuf, " thread_pool_max='%d'", + iothread->thread_pool_max); + } - if (iothread->thread_pool_max >= 0) { - virBufferAsprintf(&attrBuf, " thread_pool_max='%d'", - iothread->thread_pool_max); + virXMLFormatElement(&childrenBuf, "iothread", &attrBuf, NULL); } - virXMLFormatElement(&childrenBuf, "iothread", &attrBuf, NULL); + virXMLFormatElement(buf, "iothreadids", NULL, &childrenBuf); } - virXMLFormatElement(buf, "iothreadids", NULL, &childrenBuf); - virDomainDefaultIOThreadDefFormat(buf, def); }