mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
util: cgroup: modify virCgroupFree to take virCgroupPtr
Modify virCgroupFree function signature to take a value of type virCgroupPtr instead of virCgroupPtr * as the parameter. Change the argument type in all calls to virCgroupFree function from virCgroupPtr * to virCgroupPtr. This is a step towards having consistent function signatures for Free helpers so that they can be used with VIR_AUTOPTR cleanup macro. Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
0c5e7435ca
commit
0f80c71822
@ -309,12 +309,12 @@ int virDomainLxcEnterCGroup(virDomainPtr domain,
|
|||||||
if (virCgroupAddTask(cgroup, getpid()) < 0)
|
if (virCgroupAddTask(cgroup, getpid()) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
virDispatchError(NULL);
|
virDispatchError(NULL);
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -306,7 +306,7 @@ int virLXCCgroupGetMeminfo(virLXCMeminfoPtr meminfo)
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -515,7 +515,7 @@ virCgroupPtr virLXCCgroupCreate(virDomainDefPtr def,
|
|||||||
def->idmap.uidmap[0].target,
|
def->idmap.uidmap[0].target,
|
||||||
def->idmap.gidmap[0].target,
|
def->idmap.gidmap[0].target,
|
||||||
(1 << VIR_CGROUP_CONTROLLER_SYSTEMD)) < 0) {
|
(1 << VIR_CGROUP_CONTROLLER_SYSTEMD)) < 0) {
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
cgroup = NULL;
|
cgroup = NULL;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
@ -1815,7 +1815,7 @@ static int lxcContainerSetupPivotRoot(virDomainDefPtr vmDef,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(stateDir);
|
VIR_FREE(stateDir);
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
VIR_FREE(sec_mount_options);
|
VIR_FREE(sec_mount_options);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -296,7 +296,7 @@ static void virLXCControllerFree(virLXCControllerPtr ctrl)
|
|||||||
VIR_FREE(ctrl->nbdpids);
|
VIR_FREE(ctrl->nbdpids);
|
||||||
|
|
||||||
VIR_FREE(ctrl->nsFDs);
|
VIR_FREE(ctrl->nsFDs);
|
||||||
virCgroupFree(&ctrl->cgroup);
|
virCgroupFree(ctrl->cgroup);
|
||||||
|
|
||||||
/* This must always be the last thing to be closed */
|
/* This must always be the last thing to be closed */
|
||||||
VIR_FORCE_CLOSE(ctrl->handshakeFd);
|
VIR_FORCE_CLOSE(ctrl->handshakeFd);
|
||||||
|
@ -172,7 +172,7 @@ virLXCDomainObjPrivateFree(void *data)
|
|||||||
{
|
{
|
||||||
virLXCDomainObjPrivatePtr priv = data;
|
virLXCDomainObjPrivatePtr priv = data;
|
||||||
|
|
||||||
virCgroupFree(&priv->cgroup);
|
virCgroupFree(priv->cgroup);
|
||||||
virLXCDomainObjFreeJob(priv);
|
virLXCDomainObjFreeJob(priv);
|
||||||
VIR_FREE(priv);
|
VIR_FREE(priv);
|
||||||
}
|
}
|
||||||
|
@ -220,7 +220,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver,
|
|||||||
|
|
||||||
if (priv->cgroup) {
|
if (priv->cgroup) {
|
||||||
virCgroupRemove(priv->cgroup);
|
virCgroupRemove(priv->cgroup);
|
||||||
virCgroupFree(&priv->cgroup);
|
virCgroupFree(priv->cgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get machined to terminate the machine as it may not have cleaned it
|
/* Get machined to terminate the machine as it may not have cleaned it
|
||||||
@ -1201,26 +1201,26 @@ int virLXCProcessStart(virConnectPtr conn,
|
|||||||
|
|
||||||
if (!virCgroupHasController(selfcgroup,
|
if (!virCgroupHasController(selfcgroup,
|
||||||
VIR_CGROUP_CONTROLLER_CPUACCT)) {
|
VIR_CGROUP_CONTROLLER_CPUACCT)) {
|
||||||
virCgroupFree(&selfcgroup);
|
virCgroupFree(selfcgroup);
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Unable to find 'cpuacct' cgroups controller mount"));
|
_("Unable to find 'cpuacct' cgroups controller mount"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!virCgroupHasController(selfcgroup,
|
if (!virCgroupHasController(selfcgroup,
|
||||||
VIR_CGROUP_CONTROLLER_DEVICES)) {
|
VIR_CGROUP_CONTROLLER_DEVICES)) {
|
||||||
virCgroupFree(&selfcgroup);
|
virCgroupFree(selfcgroup);
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Unable to find 'devices' cgroups controller mount"));
|
_("Unable to find 'devices' cgroups controller mount"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (!virCgroupHasController(selfcgroup,
|
if (!virCgroupHasController(selfcgroup,
|
||||||
VIR_CGROUP_CONTROLLER_MEMORY)) {
|
VIR_CGROUP_CONTROLLER_MEMORY)) {
|
||||||
virCgroupFree(&selfcgroup);
|
virCgroupFree(selfcgroup);
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Unable to find 'memory' cgroups controller mount"));
|
_("Unable to find 'memory' cgroups controller mount"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
virCgroupFree(&selfcgroup);
|
virCgroupFree(selfcgroup);
|
||||||
|
|
||||||
if (vm->def->nconsoles == 0) {
|
if (vm->def->nconsoles == 0) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
@ -841,7 +841,7 @@ qemuSetupCpusetMems(virDomainObjPtr vm)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(mem_mask);
|
VIR_FREE(mem_mask);
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -920,7 +920,7 @@ qemuInitCgroup(virDomainObjPtr vm,
|
|||||||
if (!virCgroupAvailable())
|
if (!virCgroupAvailable())
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
virCgroupFree(&priv->cgroup);
|
virCgroupFree(priv->cgroup);
|
||||||
|
|
||||||
if (!vm->def->resource) {
|
if (!vm->def->resource) {
|
||||||
virDomainResourceDefPtr res;
|
virDomainResourceDefPtr res;
|
||||||
@ -1008,7 +1008,7 @@ qemuRestoreCgroupState(virDomainObjPtr vm)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
VIR_FREE(nodeset);
|
VIR_FREE(nodeset);
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < vm->def->niothreadids; i++) {
|
for (i = 0; i < vm->def->niothreadids; i++) {
|
||||||
@ -1021,7 +1021,7 @@ qemuRestoreCgroupState(virDomainObjPtr vm)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
VIR_FREE(nodeset);
|
VIR_FREE(nodeset);
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_EMULATOR, 0,
|
if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_EMULATOR, 0,
|
||||||
@ -1035,7 +1035,7 @@ qemuRestoreCgroupState(virDomainObjPtr vm)
|
|||||||
VIR_FREE(mem_mask);
|
VIR_FREE(mem_mask);
|
||||||
VIR_FREE(nodeset);
|
VIR_FREE(nodeset);
|
||||||
virBitmapFree(all_nodes);
|
virBitmapFree(all_nodes);
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
@ -1057,7 +1057,7 @@ qemuConnectCgroup(virDomainObjPtr vm)
|
|||||||
if (!virCgroupAvailable())
|
if (!virCgroupAvailable())
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
virCgroupFree(&priv->cgroup);
|
virCgroupFree(priv->cgroup);
|
||||||
|
|
||||||
if (virCgroupNewDetectMachine(vm->def->name,
|
if (virCgroupNewDetectMachine(vm->def->name,
|
||||||
"qemu",
|
"qemu",
|
||||||
@ -1203,7 +1203,7 @@ qemuSetupCgroupForExtDevices(virDomainObjPtr vm,
|
|||||||
ret = qemuExtDevicesSetupCgroup(driver, vm->def, cgroup_temp);
|
ret = qemuExtDevicesSetupCgroup(driver, vm->def, cgroup_temp);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1281,7 +1281,7 @@ qemuCgroupEmulatorAllNodesDataFree(qemuCgroupEmulatorAllNodesDataPtr data)
|
|||||||
if (!data)
|
if (!data)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
virCgroupFree(&data->emulatorCgroup);
|
virCgroupFree(data->emulatorCgroup);
|
||||||
VIR_FREE(data->emulatorMemMask);
|
VIR_FREE(data->emulatorMemMask);
|
||||||
VIR_FREE(data);
|
VIR_FREE(data);
|
||||||
}
|
}
|
||||||
|
@ -1920,7 +1920,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv)
|
|||||||
virStringListFree(priv->qemuDevices);
|
virStringListFree(priv->qemuDevices);
|
||||||
priv->qemuDevices = NULL;
|
priv->qemuDevices = NULL;
|
||||||
|
|
||||||
virCgroupFree(&priv->cgroup);
|
virCgroupFree(priv->cgroup);
|
||||||
|
|
||||||
virPerfFree(priv->perf);
|
virPerfFree(priv->perf);
|
||||||
priv->perf = NULL;
|
priv->perf = NULL;
|
||||||
|
@ -5078,7 +5078,7 @@ qemuDomainPinVcpuLive(virDomainObjPtr vm,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virBitmapFree(tmpmap);
|
virBitmapFree(tmpmap);
|
||||||
virCgroupFree(&cgroup_vcpu);
|
virCgroupFree(cgroup_vcpu);
|
||||||
VIR_FREE(str);
|
VIR_FREE(str);
|
||||||
virObjectEventStateQueue(driver->domainEventState, event);
|
virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
return ret;
|
return ret;
|
||||||
@ -5315,8 +5315,7 @@ qemuDomainPinEmulator(virDomainPtr dom,
|
|||||||
qemuDomainObjEndJob(driver, vm);
|
qemuDomainObjEndJob(driver, vm);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (cgroup_emulator)
|
virCgroupFree(cgroup_emulator);
|
||||||
virCgroupFree(&cgroup_emulator);
|
|
||||||
virObjectEventStateQueue(driver->domainEventState, event);
|
virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
VIR_FREE(str);
|
VIR_FREE(str);
|
||||||
virBitmapFree(pcpumap);
|
virBitmapFree(pcpumap);
|
||||||
@ -5797,8 +5796,7 @@ qemuDomainPinIOThread(virDomainPtr dom,
|
|||||||
qemuDomainObjEndJob(driver, vm);
|
qemuDomainObjEndJob(driver, vm);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (cgroup_iothread)
|
virCgroupFree(cgroup_iothread);
|
||||||
virCgroupFree(&cgroup_iothread);
|
|
||||||
virObjectEventStateQueue(driver->domainEventState, event);
|
virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
VIR_FREE(str);
|
VIR_FREE(str);
|
||||||
virBitmapFree(pcpumap);
|
virBitmapFree(pcpumap);
|
||||||
@ -9852,7 +9850,7 @@ qemuDomainSetNumaParamsLive(virDomainObjPtr vm,
|
|||||||
false, &cgroup_temp) < 0 ||
|
false, &cgroup_temp) < 0 ||
|
||||||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
|
|
||||||
for (i = 0; i < virDomainDefGetVcpusMax(vm->def); i++) {
|
for (i = 0; i < virDomainDefGetVcpusMax(vm->def); i++) {
|
||||||
virDomainVcpuDefPtr vcpu = virDomainDefGetVcpu(vm->def, i);
|
virDomainVcpuDefPtr vcpu = virDomainDefGetVcpu(vm->def, i);
|
||||||
@ -9864,7 +9862,7 @@ qemuDomainSetNumaParamsLive(virDomainObjPtr vm,
|
|||||||
false, &cgroup_temp) < 0 ||
|
false, &cgroup_temp) < 0 ||
|
||||||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < vm->def->niothreadids; i++) {
|
for (i = 0; i < vm->def->niothreadids; i++) {
|
||||||
@ -9873,13 +9871,13 @@ qemuDomainSetNumaParamsLive(virDomainObjPtr vm,
|
|||||||
false, &cgroup_temp) < 0 ||
|
false, &cgroup_temp) < 0 ||
|
||||||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(nodeset_str);
|
VIR_FREE(nodeset_str);
|
||||||
virCgroupFree(&cgroup_temp);
|
virCgroupFree(cgroup_temp);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -10301,13 +10299,13 @@ qemuSetVcpusBWLive(virDomainObjPtr vm, virCgroupPtr cgroup,
|
|||||||
if (qemuSetupCgroupVcpuBW(cgroup_vcpu, period, quota) < 0)
|
if (qemuSetupCgroupVcpuBW(cgroup_vcpu, period, quota) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virCgroupFree(&cgroup_vcpu);
|
virCgroupFree(cgroup_vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_vcpu);
|
virCgroupFree(cgroup_vcpu);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10328,11 +10326,11 @@ qemuSetEmulatorBandwidthLive(virCgroupPtr cgroup,
|
|||||||
if (qemuSetupCgroupVcpuBW(cgroup_emulator, period, quota) < 0)
|
if (qemuSetupCgroupVcpuBW(cgroup_emulator, period, quota) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virCgroupFree(&cgroup_emulator);
|
virCgroupFree(cgroup_emulator);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_emulator);
|
virCgroupFree(cgroup_emulator);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10359,13 +10357,13 @@ qemuSetIOThreadsBWLive(virDomainObjPtr vm, virCgroupPtr cgroup,
|
|||||||
if (qemuSetupCgroupVcpuBW(cgroup_iothread, period, quota) < 0)
|
if (qemuSetupCgroupVcpuBW(cgroup_iothread, period, quota) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virCgroupFree(&cgroup_iothread);
|
virCgroupFree(cgroup_iothread);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_iothread);
|
virCgroupFree(cgroup_iothread);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10751,7 +10749,7 @@ qemuGetVcpusBWLive(virDomainObjPtr vm,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_vcpu);
|
virCgroupFree(cgroup_vcpu);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10774,7 +10772,7 @@ qemuGetEmulatorBandwidthLive(virCgroupPtr cgroup,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_emulator);
|
virCgroupFree(cgroup_emulator);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10810,7 +10808,7 @@ qemuGetIOThreadsBWLive(virDomainObjPtr vm,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup_iothread);
|
virCgroupFree(cgroup_iothread);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2532,7 +2532,7 @@ qemuProcessSetupPid(virDomainObjPtr vm,
|
|||||||
if (cgroup) {
|
if (cgroup) {
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
virCgroupRemove(cgroup);
|
virCgroupRemove(cgroup);
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1178,7 +1178,7 @@ virCgroupNew(pid_t pid,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
*group = NULL;
|
*group = NULL;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
@ -1379,8 +1379,8 @@ virCgroupNewPartition(const char *path,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
virCgroupFree(&parent);
|
virCgroupFree(parent);
|
||||||
VIR_FREE(parentPath);
|
VIR_FREE(parentPath);
|
||||||
VIR_FREE(newPath);
|
VIR_FREE(newPath);
|
||||||
return ret;
|
return ret;
|
||||||
@ -1447,7 +1447,7 @@ virCgroupNewDomainPartition(virCgroupPtr partition,
|
|||||||
if (virCgroupMakeGroup(partition, *group, create,
|
if (virCgroupMakeGroup(partition, *group, create,
|
||||||
VIR_CGROUP_MEM_HIERACHY) < 0) {
|
VIR_CGROUP_MEM_HIERACHY) < 0) {
|
||||||
virCgroupRemove(*group);
|
virCgroupRemove(*group);
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1509,7 +1509,7 @@ virCgroupNewThread(virCgroupPtr domain,
|
|||||||
|
|
||||||
if (virCgroupMakeGroup(domain, *group, create, VIR_CGROUP_NONE) < 0) {
|
if (virCgroupMakeGroup(domain, *group, create, VIR_CGROUP_NONE) < 0) {
|
||||||
virCgroupRemove(*group);
|
virCgroupRemove(*group);
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1550,7 +1550,7 @@ virCgroupNewDetectMachine(const char *name,
|
|||||||
true, machinename)) {
|
true, machinename)) {
|
||||||
VIR_DEBUG("Failed to validate machine name for '%s' driver '%s'",
|
VIR_DEBUG("Failed to validate machine name for '%s' driver '%s'",
|
||||||
name, drivername);
|
name, drivername);
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1603,7 +1603,7 @@ virCgroupNewMachineSystemd(const char *name,
|
|||||||
|
|
||||||
path = init->controllers[VIR_CGROUP_CONTROLLER_SYSTEMD].placement;
|
path = init->controllers[VIR_CGROUP_CONTROLLER_SYSTEMD].placement;
|
||||||
init->controllers[VIR_CGROUP_CONTROLLER_SYSTEMD].placement = NULL;
|
init->controllers[VIR_CGROUP_CONTROLLER_SYSTEMD].placement = NULL;
|
||||||
virCgroupFree(&init);
|
virCgroupFree(init);
|
||||||
|
|
||||||
if (!path || STREQ(path, "/") || path[0] != '/') {
|
if (!path || STREQ(path, "/") || path[0] != '/') {
|
||||||
VIR_DEBUG("Systemd didn't setup its controller");
|
VIR_DEBUG("Systemd didn't setup its controller");
|
||||||
@ -1635,13 +1635,13 @@ virCgroupNewMachineSystemd(const char *name,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (virCgroupMakeGroup(parent, tmp, true, VIR_CGROUP_NONE) < 0) {
|
if (virCgroupMakeGroup(parent, tmp, true, VIR_CGROUP_NONE) < 0) {
|
||||||
virCgroupFree(&tmp);
|
virCgroupFree(tmp);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
if (t) {
|
if (t) {
|
||||||
*t = '/';
|
*t = '/';
|
||||||
offset = t;
|
offset = t;
|
||||||
virCgroupFree(&parent);
|
virCgroupFree(parent);
|
||||||
parent = tmp;
|
parent = tmp;
|
||||||
} else {
|
} else {
|
||||||
*group = tmp;
|
*group = tmp;
|
||||||
@ -1652,7 +1652,7 @@ virCgroupNewMachineSystemd(const char *name,
|
|||||||
if (virCgroupAddTask(*group, pidleader) < 0) {
|
if (virCgroupAddTask(*group, pidleader) < 0) {
|
||||||
virErrorPtr saved = virSaveLastError();
|
virErrorPtr saved = virSaveLastError();
|
||||||
virCgroupRemove(*group);
|
virCgroupRemove(*group);
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
if (saved) {
|
if (saved) {
|
||||||
virSetError(saved);
|
virSetError(saved);
|
||||||
virFreeError(saved);
|
virFreeError(saved);
|
||||||
@ -1661,7 +1661,7 @@ virCgroupNewMachineSystemd(const char *name,
|
|||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&parent);
|
virCgroupFree(parent);
|
||||||
VIR_FREE(path);
|
VIR_FREE(path);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1708,7 +1708,7 @@ virCgroupNewMachineManual(const char *name,
|
|||||||
if (virCgroupAddTask(*group, pidleader) < 0) {
|
if (virCgroupAddTask(*group, pidleader) < 0) {
|
||||||
virErrorPtr saved = virSaveLastError();
|
virErrorPtr saved = virSaveLastError();
|
||||||
virCgroupRemove(*group);
|
virCgroupRemove(*group);
|
||||||
virCgroupFree(group);
|
virCgroupFree(*group);
|
||||||
if (saved) {
|
if (saved) {
|
||||||
virSetError(saved);
|
virSetError(saved);
|
||||||
virFreeError(saved);
|
virFreeError(saved);
|
||||||
@ -1719,7 +1719,7 @@ virCgroupNewMachineManual(const char *name,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&parent);
|
virCgroupFree(parent);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1786,21 +1786,21 @@ virCgroupNewIgnoreError(void)
|
|||||||
* @group: The group structure to free
|
* @group: The group structure to free
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
virCgroupFree(virCgroupPtr *group)
|
virCgroupFree(virCgroupPtr group)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
if (*group == NULL)
|
if (!group)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
|
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
|
||||||
VIR_FREE((*group)->controllers[i].mountPoint);
|
VIR_FREE(group->controllers[i].mountPoint);
|
||||||
VIR_FREE((*group)->controllers[i].linkPoint);
|
VIR_FREE(group->controllers[i].linkPoint);
|
||||||
VIR_FREE((*group)->controllers[i].placement);
|
VIR_FREE(group->controllers[i].placement);
|
||||||
}
|
}
|
||||||
|
|
||||||
VIR_FREE((*group)->path);
|
VIR_FREE(group->path);
|
||||||
VIR_FREE(*group);
|
VIR_FREE(group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2514,7 +2514,7 @@ virCgroupMemoryOnceInit(void)
|
|||||||
"memory.limit_in_bytes",
|
"memory.limit_in_bytes",
|
||||||
&mem_unlimited));
|
&mem_unlimited));
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&group);
|
virCgroupFree(group);
|
||||||
virCgroupMemoryUnlimitedKB = mem_unlimited >> 10;
|
virCgroupMemoryUnlimitedKB = mem_unlimited >> 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3158,13 +3158,13 @@ virCgroupGetPercpuVcpuSum(virCgroupPtr group,
|
|||||||
sum_cpu_time[j] += tmp;
|
sum_cpu_time[j] += tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
virCgroupFree(&group_vcpu);
|
virCgroupFree(group_vcpu);
|
||||||
VIR_FREE(buf);
|
VIR_FREE(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&group_vcpu);
|
virCgroupFree(group_vcpu);
|
||||||
VIR_FREE(buf);
|
VIR_FREE(buf);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -3722,7 +3722,7 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
|
|||||||
if (dormdir)
|
if (dormdir)
|
||||||
virCgroupRemove(subgroup);
|
virCgroupRemove(subgroup);
|
||||||
|
|
||||||
virCgroupFree(&subgroup);
|
virCgroupFree(subgroup);
|
||||||
}
|
}
|
||||||
if (direrr < 0)
|
if (direrr < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -3731,7 +3731,7 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
|
|||||||
ret = killedAny ? 1 : 0;
|
ret = killedAny ? 1 : 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&subgroup);
|
virCgroupFree(subgroup);
|
||||||
VIR_FREE(keypath);
|
VIR_FREE(keypath);
|
||||||
VIR_DIR_CLOSE(dp);
|
VIR_DIR_CLOSE(dp);
|
||||||
return ret;
|
return ret;
|
||||||
@ -4118,7 +4118,7 @@ virCgroupControllerAvailable(int controller)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = virCgroupHasController(cgroup, controller);
|
ret = virCgroupHasController(cgroup, controller);
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4250,7 +4250,7 @@ virCgroupNewIgnoreError(void)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
virCgroupFree(virCgroupPtr *group ATTRIBUTE_UNUSED)
|
virCgroupFree(virCgroupPtr group ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
virReportSystemError(ENXIO, "%s",
|
virReportSystemError(ENXIO, "%s",
|
||||||
_("Control groups not supported on this platform"));
|
_("Control groups not supported on this platform"));
|
||||||
@ -4915,7 +4915,7 @@ virCgroupDelThread(virCgroupPtr cgroup,
|
|||||||
|
|
||||||
/* Remove the offlined cgroup */
|
/* Remove the offlined cgroup */
|
||||||
virCgroupRemove(new_cgroup);
|
virCgroupRemove(new_cgroup);
|
||||||
virCgroupFree(&new_cgroup);
|
virCgroupFree(new_cgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -122,7 +122,7 @@ int virCgroupTerminateMachine(const char *name)
|
|||||||
|
|
||||||
bool virCgroupNewIgnoreError(void);
|
bool virCgroupNewIgnoreError(void);
|
||||||
|
|
||||||
void virCgroupFree(virCgroupPtr *group);
|
void virCgroupFree(virCgroupPtr group);
|
||||||
|
|
||||||
bool virCgroupHasController(virCgroupPtr cgroup, int controller);
|
bool virCgroupHasController(virCgroupPtr cgroup, int controller);
|
||||||
int virCgroupPathOfController(virCgroupPtr group,
|
int virCgroupPathOfController(virCgroupPtr group,
|
||||||
|
@ -198,7 +198,7 @@ testCgroupDetectMounts(const void *args)
|
|||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(mounts);
|
VIR_FREE(mounts);
|
||||||
VIR_FREE(parsed);
|
VIR_FREE(parsed);
|
||||||
virCgroupFree(&group);
|
virCgroupFree(group);
|
||||||
virBufferFreeAndReset(&buf);
|
virBufferFreeAndReset(&buf);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ static int testCgroupNewForSelf(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = validateCgroup(cgroup, "", mountsFull, links, placement);
|
ret = validateCgroup(cgroup, "", mountsFull, links, placement);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ static int testCgroupNewForPartition(const void *args ATTRIBUTE_UNUSED)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsSmall, links, placementSmall);
|
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsSmall, links, placementSmall);
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
|
|
||||||
if ((rv = virCgroupNewPartition("/virtualmachines", true, -1, &cgroup)) != 0) {
|
if ((rv = virCgroupNewPartition("/virtualmachines", true, -1, &cgroup)) != 0) {
|
||||||
fprintf(stderr, "Cannot create /virtualmachines cgroup: %d\n", -rv);
|
fprintf(stderr, "Cannot create /virtualmachines cgroup: %d\n", -rv);
|
||||||
@ -313,7 +313,7 @@ static int testCgroupNewForPartition(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsFull, links, placementFull);
|
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsFull, links, placementFull);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -353,7 +353,7 @@ static int testCgroupNewForPartitionNested(const void *args ATTRIBUTE_UNUSED)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Should now work */
|
/* Should now work */
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
if ((rv = virCgroupNewPartition("/deployment/production", true, -1, &cgroup)) != 0) {
|
if ((rv = virCgroupNewPartition("/deployment/production", true, -1, &cgroup)) != 0) {
|
||||||
fprintf(stderr, "Failed to create /deployment/production cgroup: %d\n", -rv);
|
fprintf(stderr, "Failed to create /deployment/production cgroup: %d\n", -rv);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -363,7 +363,7 @@ static int testCgroupNewForPartitionNested(const void *args ATTRIBUTE_UNUSED)
|
|||||||
mountsFull, links, placementFull);
|
mountsFull, links, placementFull);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -402,14 +402,14 @@ static int testCgroupNewForPartitionNestedDeep(const void *args ATTRIBUTE_UNUSED
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
if ((rv = virCgroupNewPartition("/user/berrange.user", true, -1, &cgroup)) != 0) {
|
if ((rv = virCgroupNewPartition("/user/berrange.user", true, -1, &cgroup)) != 0) {
|
||||||
fprintf(stderr, "Failed to create /user/berrange.user cgroup: %d\n", -rv);
|
fprintf(stderr, "Failed to create /user/berrange.user cgroup: %d\n", -rv);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Should now work */
|
/* Should now work */
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
if ((rv = virCgroupNewPartition("/user/berrange.user/production", true, -1, &cgroup)) != 0) {
|
if ((rv = virCgroupNewPartition("/user/berrange.user/production", true, -1, &cgroup)) != 0) {
|
||||||
fprintf(stderr, "Failed to create /user/berrange.user/production cgroup: %d\n", -rv);
|
fprintf(stderr, "Failed to create /user/berrange.user/production cgroup: %d\n", -rv);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -419,7 +419,7 @@ static int testCgroupNewForPartitionNestedDeep(const void *args ATTRIBUTE_UNUSED
|
|||||||
mountsFull, links, placementFull);
|
mountsFull, links, placementFull);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,8 +455,8 @@ static int testCgroupNewForPartitionDomain(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = validateCgroup(domaincgroup, "/production.partition/foo.libvirt-lxc", mountsFull, links, placement);
|
ret = validateCgroup(domaincgroup, "/production.partition/foo.libvirt-lxc", mountsFull, links, placement);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&partitioncgroup);
|
virCgroupFree(partitioncgroup);
|
||||||
virCgroupFree(&domaincgroup);
|
virCgroupFree(domaincgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -506,10 +506,10 @@ static int testCgroupNewForPartitionDomainEscaped(const void *args ATTRIBUTE_UNU
|
|||||||
ret = validateCgroup(domaincgroup, "/_cgroup.evil/net_cls.evil/__evil.evil/_cpu.foo.libvirt-lxc", mountsFull, links, placement);
|
ret = validateCgroup(domaincgroup, "/_cgroup.evil/net_cls.evil/__evil.evil/_cpu.foo.libvirt-lxc", mountsFull, links, placement);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&partitioncgroup3);
|
virCgroupFree(partitioncgroup3);
|
||||||
virCgroupFree(&partitioncgroup2);
|
virCgroupFree(partitioncgroup2);
|
||||||
virCgroupFree(&partitioncgroup1);
|
virCgroupFree(partitioncgroup1);
|
||||||
virCgroupFree(&domaincgroup);
|
virCgroupFree(domaincgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -535,7 +535,7 @@ static int testCgroupNewForSelfAllInOne(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = validateCgroup(cgroup, "", mountsAllInOne, linksAllInOne, placement);
|
ret = validateCgroup(cgroup, "", mountsAllInOne, linksAllInOne, placement);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -563,7 +563,7 @@ static int testCgroupNewForSelfLogind(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = validateCgroup(cgroup, "", mountsLogind, linksLogind, placement);
|
ret = validateCgroup(cgroup, "", mountsLogind, linksLogind, placement);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,7 +690,7 @@ static int testCgroupGetPercpuStats(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
VIR_FREE(params);
|
VIR_FREE(params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -723,7 +723,7 @@ static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -773,7 +773,7 @@ static int testCgroupGetBlkioIoServiced(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -846,7 +846,7 @@ static int testCgroupGetBlkioIoDeviceServiced(const void *args ATTRIBUTE_UNUSED)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCgroupFree(&cgroup);
|
virCgroupFree(cgroup);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user