chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemctl: do not bother to mutate state on error
[elogind.git]
/
src
/
systemctl
/
systemctl.c
diff --git
a/src/systemctl/systemctl.c
b/src/systemctl/systemctl.c
index f3d7fc8d6e5c0573a5e7442180e1b41ce7c5c0ab..0631190504f6e19591406735d5dcba402a1b4262 100644
(file)
--- a/
src/systemctl/systemctl.c
+++ b/
src/systemctl/systemctl.c
@@
-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);
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)
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);
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;
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, " ");
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");
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 */
} 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));
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) {
}
if (status.si_code == CLD_EXITED) {
@@
-5081,17
+5073,12
@@
static int enable_sysv_units(const char *verb, char **args) {
puts("disabled");
}
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++) {
/* Drop all SysV units */
for (f = 0, t = 0; args[f]; f++) {