if (virCgroupAddProcess(cgroup, getpid()) < 0)
goto error;
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return 0;
error:
virDispatchError(NULL);
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return -1;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
def->idmap.uidmap[0].target,
def->idmap.gidmap[0].target,
(1 << VIR_CGROUP_CONTROLLER_SYSTEMD)) < 0) {
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return NULL;
}
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
g_free(ctrl->nbdpids);
g_free(ctrl->nsFDs);
- virCgroupFree(&ctrl->cgroup);
+ virCgroupFree(ctrl->cgroup);
/* This must always be the last thing to be closed */
VIR_FORCE_CLOSE(ctrl->handshakeFd);
{
virLXCDomainObjPrivatePtr priv = data;
- virCgroupFree(&priv->cgroup);
+ virCgroupFree(priv->cgroup);
virLXCDomainObjFreeJob(priv);
g_free(priv);
}
if (priv->cgroup) {
virCgroupRemove(priv->cgroup);
- virCgroupFree(&priv->cgroup);
+ virCgroupFree(priv->cgroup);
+ priv->cgroup = NULL;
}
/* Get machined to terminate the machine as it may not have cleaned it
if (!virCgroupHasController(selfcgroup,
VIR_CGROUP_CONTROLLER_CPUACCT)) {
- virCgroupFree(&selfcgroup);
+ virCgroupFree(selfcgroup);
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to find 'cpuacct' cgroups controller mount"));
return -1;
}
if (!virCgroupHasController(selfcgroup,
VIR_CGROUP_CONTROLLER_DEVICES)) {
- virCgroupFree(&selfcgroup);
+ virCgroupFree(selfcgroup);
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to find 'devices' cgroups controller mount"));
return -1;
}
if (!virCgroupHasController(selfcgroup,
VIR_CGROUP_CONTROLLER_MEMORY)) {
- virCgroupFree(&selfcgroup);
+ virCgroupFree(selfcgroup);
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Unable to find 'memory' cgroups controller mount"));
return -1;
}
- virCgroupFree(&selfcgroup);
+ virCgroupFree(selfcgroup);
if (vm->def->nconsoles == 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
if (!virCgroupAvailable())
return 0;
- virCgroupFree(&priv->cgroup);
+ virCgroupFree(priv->cgroup);
+ priv->cgroup = NULL;
if (!vm->def->resource) {
virDomainResourceDefPtr res;
ret = 0;
cleanup:
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
return ret;
}
if (!virCgroupAvailable())
return 0;
- virCgroupFree(&priv->cgroup);
+ virCgroupFree(priv->cgroup);
+ priv->cgroup = NULL;
if (virCgroupNewDetectMachine(vm->def->name,
"qemu",
ret = qemuExtDevicesSetupCgroup(driver, vm, cgroup_temp);
cleanup:
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
return ret;
}
if (!data)
return;
- virCgroupFree(&data->emulatorCgroup);
+ virCgroupFree(data->emulatorCgroup);
VIR_FREE(data->emulatorMemMask);
VIR_FREE(data);
}
g_strfreev(priv->qemuDevices);
priv->qemuDevices = NULL;
- virCgroupFree(&priv->cgroup);
+ virCgroupFree(priv->cgroup);
+ priv->cgroup = NULL;
virPerfFree(priv->perf);
priv->perf = NULL;
cleanup:
virBitmapFree(tmpmap);
- virCgroupFree(&cgroup_vcpu);
+ virCgroupFree(cgroup_vcpu);
virObjectEventStateQueue(driver->domainEventState, event);
return ret;
}
cleanup:
if (cgroup_emulator)
- virCgroupFree(&cgroup_emulator);
+ virCgroupFree(cgroup_emulator);
virObjectEventStateQueue(driver->domainEventState, event);
virBitmapFree(pcpumap);
virDomainObjEndAPI(&vm);
cleanup:
if (cgroup_iothread)
- virCgroupFree(&cgroup_iothread);
+ virCgroupFree(cgroup_iothread);
virObjectEventStateQueue(driver->domainEventState, event);
virBitmapFree(pcpumap);
virDomainObjEndAPI(&vm);
false, &cgroup_temp) < 0 ||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
goto cleanup;
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
+ cgroup_temp = NULL;
for (i = 0; i < virDomainDefGetVcpusMax(vm->def); i++) {
virDomainVcpuDefPtr vcpu = virDomainDefGetVcpu(vm->def, i);
false, &cgroup_temp) < 0 ||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
goto cleanup;
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
+ cgroup_temp = NULL;
}
for (i = 0; i < vm->def->niothreadids; i++) {
false, &cgroup_temp) < 0 ||
virCgroupSetCpusetMems(cgroup_temp, nodeset_str) < 0)
goto cleanup;
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
+ cgroup_temp = NULL;
}
/* set nodeset for root cgroup */
ret = 0;
cleanup:
- virCgroupFree(&cgroup_temp);
+ virCgroupFree(cgroup_temp);
return ret;
}
if (qemuSetupCgroupVcpuBW(cgroup_vcpu, period, quota) < 0)
goto cleanup;
- virCgroupFree(&cgroup_vcpu);
+ virCgroupFree(cgroup_vcpu);
+ cgroup_vcpu = NULL;
}
return 0;
cleanup:
- virCgroupFree(&cgroup_vcpu);
+ virCgroupFree(cgroup_vcpu);
return -1;
}
if (qemuSetupCgroupVcpuBW(cgroup_emulator, period, quota) < 0)
goto cleanup;
- virCgroupFree(&cgroup_emulator);
+ virCgroupFree(cgroup_emulator);
return 0;
cleanup:
- virCgroupFree(&cgroup_emulator);
+ virCgroupFree(cgroup_emulator);
return -1;
}
if (qemuSetupCgroupVcpuBW(cgroup_iothread, period, quota) < 0)
goto cleanup;
- virCgroupFree(&cgroup_iothread);
+ virCgroupFree(cgroup_iothread);
+ cgroup_iothread = NULL;
}
return 0;
cleanup:
- virCgroupFree(&cgroup_iothread);
+ virCgroupFree(cgroup_iothread);
return -1;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup_vcpu);
+ virCgroupFree(cgroup_vcpu);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup_emulator);
+ virCgroupFree(cgroup_emulator);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup_iothread);
+ virCgroupFree(cgroup_iothread);
return ret;
}
if (cgroup) {
if (ret < 0)
virCgroupRemove(cgroup);
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
}
return ret;
return 0;
error:
- virCgroupFree(group);
+ virCgroupFree(*group);
*group = NULL;
return -1;
ret = 0;
cleanup:
- if (ret != 0)
- virCgroupFree(group);
- virCgroupFree(&parent);
+ if (ret != 0) {
+ virCgroupFree(*group);
+ *group = NULL;
+ }
+ virCgroupFree(parent);
return ret;
}
*/
if (virCgroupMakeGroup(partition, *group, create,
VIR_CGROUP_MEM_HIERACHY) < 0) {
- virCgroupFree(group);
+ virCgroupFree(*group);
+ *group = NULL;
return -1;
}
return -1;
if (virCgroupMakeGroup(domain, *group, create, VIR_CGROUP_THREAD) < 0) {
- virCgroupFree(group);
+ virCgroupFree(*group);
+ *group = NULL;
return -1;
}
machinename)) {
VIR_DEBUG("Failed to validate machine name for '%s' driver '%s'",
name, drivername);
- virCgroupFree(group);
+ virCgroupFree(*group);
+ *group = NULL;
return 0;
}
}
goto cleanup;
if (virCgroupMakeGroup(parent, tmp, true, VIR_CGROUP_SYSTEMD) < 0) {
- virCgroupFree(&tmp);
+ virCgroupFree(tmp);
goto cleanup;
}
if (t) {
*t = '/';
offset = t;
- virCgroupFree(&parent);
+ virCgroupFree(parent);
parent = tmp;
} else {
*group = tmp;
ret = 0;
cleanup:
- virCgroupFree(&parent);
+ virCgroupFree(parent);
return ret;
}
break;
}
}
- virCgroupFree(&init);
+ virCgroupFree(init);
if (!path || STREQ(path, "/") || path[0] != '/') {
VIR_DEBUG("Systemd didn't setup its controller, path=%s",
virErrorPreserveLast(&saved);
virCgroupRemove(*group);
- virCgroupFree(group);
+ virCgroupFree(*group);
+ *group = NULL;
virErrorRestore(&saved);
}
virErrorPreserveLast(&saved);
virCgroupRemove(*group);
- virCgroupFree(group);
+ virCgroupFree(*group);
+ *group = NULL;
virErrorRestore(&saved);
}
ret = 0;
cleanup:
- virCgroupFree(&parent);
+ virCgroupFree(parent);
return ret;
}
sum_cpu_time[j] += tmp;
}
- virCgroupFree(&group_vcpu);
+ virCgroupFree(group_vcpu);
+ group_vcpu = NULL;
}
ret = 0;
cleanup:
- virCgroupFree(&group_vcpu);
+ virCgroupFree(group_vcpu);
return ret;
}
if (dormdir)
virCgroupRemove(subgroup);
- virCgroupFree(&subgroup);
+ virCgroupFree(subgroup);
+ subgroup = NULL;
}
if (direrr < 0)
goto cleanup;
ret = killedAny ? 1 : 0;
cleanup:
- virCgroupFree(&subgroup);
+ virCgroupFree(subgroup);
VIR_DIR_CLOSE(dp);
return ret;
}
return ret;
ret = virCgroupHasController(cgroup, controller);
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
* @group: The group structure to free
*/
void
-virCgroupFree(virCgroupPtr *group)
+virCgroupFree(virCgroupPtr group)
{
size_t i;
- if (*group == NULL)
+ if (group == NULL)
return;
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
- VIR_FREE((*group)->legacy[i].mountPoint);
- VIR_FREE((*group)->legacy[i].linkPoint);
- VIR_FREE((*group)->legacy[i].placement);
+ VIR_FREE(group->legacy[i].mountPoint);
+ VIR_FREE(group->legacy[i].linkPoint);
+ VIR_FREE(group->legacy[i].placement);
}
- VIR_FREE((*group)->unified.mountPoint);
- VIR_FREE((*group)->unified.placement);
+ VIR_FREE(group->unified.mountPoint);
+ VIR_FREE(group->unified.placement);
- VIR_FREE((*group)->path);
- VIR_FREE(*group);
+ VIR_FREE(group->path);
+ VIR_FREE(group);
}
/* Remove the offlined cgroup */
virCgroupRemove(new_cgroup);
- virCgroupFree(&new_cgroup);
+ virCgroupFree(new_cgroup);
}
return 0;
bool virCgroupNewIgnoreError(void);
-void virCgroupFree(virCgroupPtr *group);
+void virCgroupFree(virCgroupPtr group);
bool virCgroupHasController(virCgroupPtr cgroup, int controller);
int virCgroupPathOfController(virCgroupPtr group,
"memory.limit_in_bytes",
&mem_unlimited));
cleanup:
- virCgroupFree(&group);
+ virCgroupFree(group);
virCgroupV1MemoryUnlimitedKB = mem_unlimited >> 10;
}
cleanup:
g_unsetenv("VIR_CGROUP_MOCK_FILENAME");
VIR_FREE(parsed);
- virCgroupFree(&group);
+ virCgroupFree(group);
return result;
}
ret = validateCgroup(cgroup, "", mountsFull, links, placement, NULL, NULL, 0);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
goto cleanup;
}
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsSmall, links, placementSmall, NULL, NULL, 0);
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
if ((rv = virCgroupNewPartition("/virtualmachines", true, -1, &cgroup)) != 0) {
fprintf(stderr, "Cannot create /virtualmachines cgroup: %d\n", -rv);
ret = validateCgroup(cgroup, "/virtualmachines.partition", mountsFull, links, placementFull, NULL, NULL, 0);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
}
/* Should now work */
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
if ((rv = virCgroupNewPartition("/deployment/production", true, -1, &cgroup)) != 0) {
fprintf(stderr, "Failed to create /deployment/production cgroup: %d\n", -rv);
goto cleanup;
mountsFull, links, placementFull, NULL, NULL, 0);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
goto cleanup;
}
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
if ((rv = virCgroupNewPartition("/user/berrange.user", true, -1, &cgroup)) != 0) {
fprintf(stderr, "Failed to create /user/berrange.user cgroup: %d\n", -rv);
goto cleanup;
}
/* Should now work */
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
if ((rv = virCgroupNewPartition("/user/berrange.user/production", true, -1, &cgroup)) != 0) {
fprintf(stderr, "Failed to create /user/berrange.user/production cgroup: %d\n", -rv);
goto cleanup;
mountsFull, links, placementFull, NULL, NULL, 0);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
ret = validateCgroup(domaincgroup, "/production.partition/foo.libvirt-lxc", mountsFull, links, placement, NULL, NULL, 0);
cleanup:
- virCgroupFree(&partitioncgroup);
- virCgroupFree(&domaincgroup);
+ virCgroupFree(partitioncgroup);
+ virCgroupFree(domaincgroup);
return ret;
}
ret = validateCgroup(domaincgroup, "/_cgroup.evil/net_cls.evil/__evil.evil/_cpu.foo.libvirt-lxc", mountsFull, links, placement, NULL, NULL, 0);
cleanup:
- virCgroupFree(&partitioncgroup3);
- virCgroupFree(&partitioncgroup2);
- virCgroupFree(&partitioncgroup1);
- virCgroupFree(&domaincgroup);
+ virCgroupFree(partitioncgroup3);
+ virCgroupFree(partitioncgroup2);
+ virCgroupFree(partitioncgroup1);
+ virCgroupFree(domaincgroup);
return ret;
}
ret = validateCgroup(cgroup, "", mountsAllInOne, linksAllInOne, placement, NULL, NULL, 0);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
if (virCgroupNewSelf(&cgroup) >= 0) {
fprintf(stderr, "Expected to fail, only systemd cgroup available.\n");
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return -1;
}
ret = validateCgroup(cgroup, "", empty, empty, empty,
"/not/really/sys/fs/cgroup", "/", controllers);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
"/not/really/sys/fs/cgroup/unified", "/", controllers);
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
VIR_FREE(params);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
ret = 0;
cleanup:
- virCgroupFree(&cgroup);
+ virCgroupFree(cgroup);
return ret;
}
}
}
- virCgroupFree(&group);
+ virCgroupFree(group);
return ret;
}