From a39ce54007de67ce6909c1770a7759b09c41bfd6 Mon Sep 17 00:00:00 2001 Message-Id: From: Michal Privoznik Date: Thu, 7 Jul 2022 16:29:18 +0200 Subject: [PATCH] domain_conf: Format more often MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 (cherry picked from commit 24fa7004e47ce86b92bc23c1f2ef9c3d6152c3a8) Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2059511 Signed-off-by: Michal Privoznik --- src/conf/domain_conf.c | 46 ++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 709ca53790..207a45d9ae 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -27763,40 +27763,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); } -- 2.35.1