mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
conf: Don't format cputune element when not needed
Commit 60b176c3d0f0d5037acfa5e27c7753f657833a0b introduced a bug that when editing an XML with cputune similar to this: ... <vcpu placement='static' current='1'>2</vcpu> <cputune> <vcpupin vcpu="1" cpuset="0"/> </cputune> ... results in formatted XML that looks like this: ... <vcpu placement='static' current='1'>2</vcpu> <cputune> </cputune> ... 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.
This commit is contained in:
parent
790d364ca2
commit
1f50730e44
@ -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</vcpu>\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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user