virDomainObjPtr vm;
virDomainDiskDefPtr disk = NULL;
qemuDomainObjPrivatePtr priv;
+ char *diskAlias = NULL;
if (!*path) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
goto endjob;
}
+ if (VIR_STRDUP(diskAlias, disk->info.alias) < 0)
+ goto endjob;
+
priv = vm->privateData;
qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetBlockStatsInfo(priv->mon,
- disk->info.alias,
+ diskAlias,
&stats->rd_req,
&stats->rd_bytes,
NULL,
NULL,
NULL,
&stats->errs);
- qemuDomainObjExitMonitor(driver, vm);
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ ret = -1;
endjob:
qemuDomainObjEndJob(driver, vm);
cleanup:
qemuDomObjEndAPI(&vm);
+ VIR_FREE(diskAlias);
return ret;
}
int idx;
int tmp, ret = -1;
virDomainObjPtr vm;
- virDomainDiskDefPtr disk = NULL;
qemuDomainObjPrivatePtr priv;
long long rd_req, rd_bytes, wr_req, wr_bytes, rd_total_times;
long long wr_total_times, flush_req, flush_total_times, errs;
virTypedParameterPtr param;
+ char *diskAlias = NULL;
virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1);
}
if (*nparams != 0) {
+ virDomainDiskDefPtr disk = NULL;
if ((idx = virDomainDiskIndexByName(vm->def, path, false)) < 0) {
virReportError(VIR_ERR_INVALID_ARG,
_("invalid path: %s"), path);
disk->dst);
goto endjob;
}
+ if (VIR_STRDUP(diskAlias, disk->info.alias) < 0)
+ goto endjob;
}
priv = vm->privateData;
ret = qemuMonitorGetBlockStatsParamsNumber(priv->mon, nparams);
if (tmp == 0 || ret < 0) {
- qemuDomainObjExitMonitor(driver, vm);
+ ignore_value(qemuDomainObjExitMonitor(driver, vm));
goto endjob;
}
ret = qemuMonitorGetBlockStatsInfo(priv->mon,
- disk->info.alias,
+ diskAlias,
&rd_req,
&rd_bytes,
&rd_total_times,
&flush_total_times,
&errs);
- qemuDomainObjExitMonitor(driver, vm);
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ ret = -1;
if (ret < 0)
goto endjob;
qemuDomainObjEndJob(driver, vm);
cleanup:
+ VIR_FREE(diskAlias);
qemuDomObjEndAPI(&vm);
return ret;
}
qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSetBlockIoThrottle(priv->mon, device,
&info, supportMaxOptions);
- qemuDomainObjExitMonitor(driver, vm);
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ ret = -1;
if (ret < 0)
goto endjob;
vm->def->disks[idx]->blkdeviotune = info;