diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index f90906e4add140bef5adf5c3a7c2370974fa4e6d..548c873da8ac8e14a5bfa18b86b62ba7d457accc 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -1055,7 +1055,6 @@ virCgroupNewMachineSystemd(const char *name, 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, @@ -1088,24 +1087,20 @@ virCgroupNewMachineSystemd(const char *name, if (virCgroupEnableMissingControllers(path, pidleader, controllers, group) < 0) { - goto error; + return -1; } - if (virCgroupAddProcess(*group, pidleader) < 0) - goto error; - - return 0; - - error: - saved = virSaveLastError(); - virCgroupRemove(*group); - virCgroupFree(group); - if (saved) { - virSetError(saved); - virFreeError(saved); + if (virCgroupAddProcess(*group, pidleader) < 0) { + virErrorPtr saved = virSaveLastError(); + virCgroupRemove(*group); + virCgroupFree(group); + if (saved) { + virSetError(saved); + virFreeError(saved); + } } - return -1; + return 0; }