int rv;
virCgroupPtr init;
VIR_AUTOFREE(char *) path = NULL;
+ virErrorPtr saved = NULL;
VIR_DEBUG("Trying to setup machine '%s' via systemd", name);
if ((rv = virSystemdCreateMachine(name,
if (virCgroupEnableMissingControllers(path, pidleader,
controllers, group) < 0) {
- return -1;
+ goto error;
}
- if (virCgroupAddTask(*group, pidleader) < 0) {
- virErrorPtr saved = virSaveLastError();
- virCgroupRemove(*group);
- virCgroupFree(group);
- if (saved) {
- virSetError(saved);
- virFreeError(saved);
- }
- }
+ if (virCgroupAddTask(*group, pidleader) < 0)
+ goto error;
return 0;
+
+ error:
+ saved = virSaveLastError();
+ virCgroupRemove(*group);
+ virCgroupFree(group);
+ if (saved) {
+ virSetError(saved);
+ virFreeError(saved);
+ }
+
+ return -1;
}