提交 1a3f6608 编写于 作者: E Eric Blake

qemu: fix inf-loop in blkio parameters

https://bugzilla.redhat.com/show_bug.cgi?id=770520

We had two nested loops both trying to use 'i' as the iteration
variable, which can result in an infinite loop when the inner
loop interferes with the outer loop.  Introduced in commit 93ab5859.

* src/qemu/qemu_driver.c (qemuDomainSetBlkioParameters): Don't
reuse iteration variable across two loops.
上级 96b3716c
......@@ -5982,6 +5982,8 @@ static int qemuDomainSetBlkioParameters(virDomainPtr dom,
} else if (STREQ(param->field, VIR_DOMAIN_BLKIO_DEVICE_WEIGHT)) {
size_t ndevices;
virBlkioDeviceWeightPtr devices = NULL;
int j;
if (param->type != VIR_TYPED_PARAM_STRING) {
qemuReportError(VIR_ERR_INVALID_ARG, "%s",
_("invalid type for device_weight tunable, "
......@@ -5996,19 +5998,19 @@ static int qemuDomainSetBlkioParameters(virDomainPtr dom,
ret = -1;
continue;
}
for (i = 0; i < ndevices; i++) {
for (j = 0; j < ndevices; i++) {
rc = virCgroupSetBlkioDeviceWeight(group,
devices[i].path,
devices[i].weight);
devices[j].path,
devices[j].weight);
if (rc < 0) {
virReportSystemError(-rc,
_("Unable to set io device weight "
"for path %s"),
devices[i].path);
devices[j].path);
break;
}
}
if (i != ndevices) {
if (j != ndevices) {
ret = -1;
continue;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册