From: Martin Kletzander Date: Mon, 17 Dec 2012 15:03:01 +0000 (+0100) Subject: conf: Don't format cputune element when not needed X-Git-Tag: v1.0.2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f50730e44df8cc965149c2b4fd5bdac898e5b62;p=thirdparty%2Flibvirt.git conf: Don't format cputune element when not needed Commit 60b176c3d0f0d5037acfa5e27c7753f657833a0b introduced a bug that when editing an XML with cputune similar to this: ... 2 ... results in formatted XML that looks like this: ... 2 ... That is caused by a condition depending on def->cputune.vcpupin being set rather than checking def->cputune.nvcpupin. Notice that nvcpupin can be 0 and vcpupin can still be allocated since it's a pointer to an array, so no harm done there. I also changed it on other places in the code where it depended on the wrong variable. --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8dbfb9622d..ac4b2c2b6f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -13955,10 +13955,10 @@ virDomainIsAllVcpupinInherited(virDomainDefPtr def) int i; if (!def->cpumask) { - if (!def->cputune.vcpupin) - return true; - else + if (def->cputune.nvcpupin) return false; + else + return true; } else { for (i = 0; i < def->cputune.nvcpupin; i++) { if (!virBitmapEqual(def->cputune.vcpupin[i]->cpumask, @@ -14143,7 +14143,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, virBufferAsprintf(buf, ">%u\n", def->maxvcpus); if (def->cputune.shares || - (def->cputune.vcpupin && !virDomainIsAllVcpupinInherited(def)) || + (def->cputune.nvcpupin && !virDomainIsAllVcpupinInherited(def)) || def->cputune.period || def->cputune.quota || def->cputune.emulatorpin || def->cputune.emulator_period || def->cputune.emulator_quota) @@ -14209,7 +14209,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, VIR_FREE(cpumask); } if (def->cputune.shares || - (def->cputune.vcpupin && !virDomainIsAllVcpupinInherited(def)) || + (def->cputune.nvcpupin && !virDomainIsAllVcpupinInherited(def)) || def->cputune.period || def->cputune.quota || def->cputune.emulatorpin || def->cputune.emulator_period || def->cputune.emulator_quota)