提交 1f50730e 编写于 作者: M Martin Kletzander

conf: Don't format cputune element when not needed

Commit 60b176c3 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.
上级 790d364c
...@@ -13955,10 +13955,10 @@ virDomainIsAllVcpupinInherited(virDomainDefPtr def) ...@@ -13955,10 +13955,10 @@ virDomainIsAllVcpupinInherited(virDomainDefPtr def)
int i; int i;
if (!def->cpumask) { if (!def->cpumask) {
if (!def->cputune.vcpupin) if (def->cputune.nvcpupin)
return true;
else
return false; return false;
else
return true;
} else { } else {
for (i = 0; i < def->cputune.nvcpupin; i++) { for (i = 0; i < def->cputune.nvcpupin; i++) {
if (!virBitmapEqual(def->cputune.vcpupin[i]->cpumask, if (!virBitmapEqual(def->cputune.vcpupin[i]->cpumask,
...@@ -14143,7 +14143,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, ...@@ -14143,7 +14143,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
virBufferAsprintf(buf, ">%u</vcpu>\n", def->maxvcpus); virBufferAsprintf(buf, ">%u</vcpu>\n", def->maxvcpus);
if (def->cputune.shares || if (def->cputune.shares ||
(def->cputune.vcpupin && !virDomainIsAllVcpupinInherited(def)) || (def->cputune.nvcpupin && !virDomainIsAllVcpupinInherited(def)) ||
def->cputune.period || def->cputune.quota || def->cputune.period || def->cputune.quota ||
def->cputune.emulatorpin || def->cputune.emulatorpin ||
def->cputune.emulator_period || def->cputune.emulator_quota) def->cputune.emulator_period || def->cputune.emulator_quota)
...@@ -14209,7 +14209,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, ...@@ -14209,7 +14209,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
VIR_FREE(cpumask); VIR_FREE(cpumask);
} }
if (def->cputune.shares || if (def->cputune.shares ||
(def->cputune.vcpupin && !virDomainIsAllVcpupinInherited(def)) || (def->cputune.nvcpupin && !virDomainIsAllVcpupinInherited(def)) ||
def->cputune.period || def->cputune.quota || def->cputune.period || def->cputune.quota ||
def->cputune.emulatorpin || def->cputune.emulatorpin ||
def->cputune.emulator_period || def->cputune.emulator_quota) def->cputune.emulator_period || def->cputune.emulator_quota)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册