systemctl: do not bother to mutate state on error

We will abort anyway.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2014-07-26 15:08:42 -04:00
parent 5b6f6ebd63
commit 60731f32f1
+12 -25
View File
@@ -5002,10 +5002,8 @@ static int enable_sysv_units(const char *verb, char **args) {
j = asprintf(&path, "%s/%s/%s", arg_root, *k, name);
else
j = asprintf(&path, "%s/%s", *k, name);
if (j < 0) {
r = log_oom();
goto finish;
}
if (j < 0)
return log_oom();
found_native = access(path, F_OK) >= 0;
if (found_native)
@@ -5019,10 +5017,8 @@ static int enable_sysv_units(const char *verb, char **args) {
j = asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name);
else
j = asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name);
if (j < 0) {
r = log_oom();
goto finish;
}
if (j < 0)
return log_oom();
p[strlen(p) - strlen(".service")] = 0;
found_sysv = access(p, F_OK) >= 0;
@@ -5044,18 +5040,15 @@ static int enable_sysv_units(const char *verb, char **args) {
argv[c] = NULL;
l = strv_join((char**)argv, " ");
if (!l) {
r = log_oom();
goto finish;
}
if (!l)
return log_oom();
log_info("Executing %s", l);
pid = fork();
if (pid < 0) {
log_error("Failed to fork: %m");
r = -errno;
goto finish;
return -errno;
} else if (pid == 0) {
/* Child */
@@ -5066,8 +5059,7 @@ static int enable_sysv_units(const char *verb, char **args) {
j = wait_for_terminate(pid, &status);
if (j < 0) {
log_error("Failed to wait for child: %s", strerror(-r));
r = j;
goto finish;
return j;
}
if (status.si_code == CLD_EXITED) {
@@ -5081,17 +5073,12 @@ static int enable_sysv_units(const char *verb, char **args) {
puts("disabled");
}
} else if (status.si_status != 0) {
r = -EINVAL;
goto finish;
}
} else {
r = -EPROTO;
goto finish;
}
} else if (status.si_status != 0)
return -EINVAL;
} else
return -EPROTO;
}
finish:
/* Drop all SysV units */
for (f = 0, t = 0; args[f]; f++) {