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,loginctl,cgls: do not ellipsize cgroup members when --full is specified
[elogind.git]
/
src
/
sysctl
/
sysctl.c
diff --git
a/src/sysctl/sysctl.c
b/src/sysctl/sysctl.c
index e77f496089f760393adcb62dec02948630ae1831..035e0ec321c5a4d951fd91e7761fc6430edb0f29 100644
(file)
--- a/
src/sysctl/sysctl.c
+++ b/
src/sysctl/sysctl.c
@@
-167,14
+167,18
@@
static int parse_file(const char *path, bool ignore_enoent) {
r = hashmap_put(sysctl_options, property, new_value);
if (r < 0) {
r = hashmap_put(sysctl_options, property, new_value);
if (r < 0) {
- if (r == -EEXIST)
+ if (r == -EEXIST) {
+ /* ignore this "error" to avoid returning it
+ * for the function when this is the last key
+ * in the file being parsed. */
+ r = 0;
log_debug("Skipping previously assigned sysctl variable %s", property);
log_debug("Skipping previously assigned sysctl variable %s", property);
- else
+
}
else
log_error("Failed to add sysctl variable %s to hashmap: %s", property, strerror(-r));
free(property);
free(new_value);
log_error("Failed to add sysctl variable %s to hashmap: %s", property, strerror(-r));
free(property);
free(new_value);
- if (r !=
-EEXIST
)
+ if (r !=
0
)
goto finish;
}
}
goto finish;
}
}