summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Landden <shawnlandden@gmail.com>2012-08-03 17:22:09 -0700
committerLennart Poettering <lennart@poettering.net>2012-08-06 16:37:01 +0200
commit1421211924ff05af3b0c0d52f1c84472d0307456 (patch)
tree6cf96db91fd478f3b281a5b11fb0214a1fc1e613
parent8230e26dc954a40d8c9dbc8ddd9376117021f9d2 (diff)
downloadsystemd-1421211924ff05af3b0c0d52f1c84472d0307456.tar.gz
continue work with error messages, log_oom()
Adds messages for formally silent errors: new "Failed on cmdline argument %s: %s". Removes some specific error messages for -ENOMEM in mount-setup.c. A few specific ones have been left in other binaries.
-rw-r--r--TODO2
-rw-r--r--src/binfmt/binfmt.c4
-rw-r--r--src/cgtop/cgtop.c7
-rw-r--r--src/core/main.c34
-rw-r--r--src/core/mount-setup.c12
5 files changed, 33 insertions, 26 deletions
diff --git a/TODO b/TODO
index 41d09434e6..6dc36cb99d 100644
--- a/TODO
+++ b/TODO
@@ -479,7 +479,7 @@ Regularly:
* Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
-* %m in printf() instead of strerror();
+* %m in printf() instead of strerror(errno);
* pahole
diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
index 0399ab75e0..788fd4b1a4 100644
--- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c
@@ -40,7 +40,7 @@ static int delete_rule(const char *rule) {
assert(rule[0]);
if (!(x = strdup(rule)))
- return -ENOMEM;
+ return log_oom();
e = strchrnul(x+1, x[0]);
*e = 0;
@@ -49,7 +49,7 @@ static int delete_rule(const char *rule) {
free(x);
if (!fn)
- return -ENOMEM;
+ return log_oom();
r = write_one_line_file(fn, "-1");
free(fn);
diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c
index a57a468b2c..3756328fa7 100644
--- a/src/cgtop/cgtop.c
+++ b/src/cgtop/cgtop.c
@@ -782,5 +782,10 @@ finish:
group_hashmap_free(a);
group_hashmap_free(b);
- return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+ if (r < 0) {
+ log_error("Exiting with failure: %s", strerror(-r));
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
}
diff --git a/src/core/main.c b/src/core/main.c
index 1326b94f68..3c0f5f9a94 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -168,12 +168,12 @@ _noreturn_ static void crash(int sig) {
pid = fork();
if (pid < 0)
- log_error("Failed to fork off crash shell: %s", strerror(errno));
+ log_error("Failed to fork off crash shell: %m");
else if (pid == 0) {
make_console_stdio();
execl("/bin/sh", "/bin/sh", NULL);
- log_error("execl() failed: %s", strerror(errno));
+ log_error("execl() failed: %m");
_exit(1);
}
@@ -350,12 +350,12 @@ static int parse_proc_cmdline_word(const char *word) {
if (!eq) {
r = unsetenv(cenv);
if (r < 0)
- log_warning("unsetenv failed %s. Ignoring.", strerror(errno));
+ log_warning("unsetenv failed %m. Ignoring.");
} else {
*eq = 0;
r = setenv(cenv, eq + 1, 1);
if (r < 0)
- log_warning("setenv failed %s. Ignoring.", strerror(errno));
+ log_warning("setenv failed %m. Ignoring.");
}
free(cenv);
@@ -495,14 +495,14 @@ static int config_parse_cpu_affinity2(
unsigned cpu;
if (!(t = strndup(w, l)))
- return -ENOMEM;
+ return log_oom();
r = safe_atou(t, &cpu);
free(t);
if (!c)
if (!(c = cpu_set_malloc(&ncpus)))
- return -ENOMEM;
+ return log_oom();
if (r < 0 || cpu >= ncpus) {
log_error("[%s:%u] Failed to parse CPU affinity: %s", filename, line, rvalue);
@@ -568,7 +568,7 @@ static int config_parse_join_controllers(
s = strndup(w, length);
if (!s)
- return -ENOMEM;
+ return log_oom();
l = strv_split(s, ",");
free(s);
@@ -584,7 +584,7 @@ static int config_parse_join_controllers(
arg_join_controllers = new(char**, 2);
if (!arg_join_controllers) {
strv_free(l);
- return -ENOMEM;
+ return log_oom();
}
arg_join_controllers[0] = l;
@@ -598,7 +598,7 @@ static int config_parse_join_controllers(
t = new0(char**, n+2);
if (!t) {
strv_free(l);
- return -ENOMEM;
+ return log_oom();
}
n = 0;
@@ -612,7 +612,7 @@ static int config_parse_join_controllers(
if (!c) {
strv_free(l);
strv_free_free(t);
- return -ENOMEM;
+ return log_oom();
}
strv_free(l);
@@ -624,7 +624,7 @@ static int config_parse_join_controllers(
if (!c) {
strv_free(l);
strv_free_free(t);
- return -ENOMEM;
+ return log_oom();
}
t[n++] = c;
@@ -729,8 +729,10 @@ static int parse_proc_cmdline(void) {
r = parse_proc_cmdline_word(word);
free(word);
- if (r < 0)
+ if (r < 0) {
+ log_error("Failed on cmdline argument %s: %s", word, strerror(-r));
goto finish;
+ }
}
r = 0;
@@ -1017,8 +1019,10 @@ static int parse_argv(int argc, char *argv[]) {
* instead. */
for (a = argv; a < argv + argc; a++)
- if ((r = parse_proc_cmdline_word(*a)) < 0)
+ if ((r = parse_proc_cmdline_word(*a)) < 0) {
+ log_error("Failed on cmdline argument %s: %s", *a, strerror(-r));
return r;
+ }
}
return 0;
@@ -1293,8 +1297,10 @@ int main(int argc, char *argv[]) {
}
/* Initialize default unit */
- if (set_default_unit(SPECIAL_DEFAULT_TARGET) < 0)
+ if (r == set_default_unit(SPECIAL_DEFAULT_TARGET) < 0) {
+ log_error("Failed to set default unit %s: %s", SPECIAL_DEFAULT_TARGET, strerror(-r));
goto finish;
+ }
/* By default, mount "cpu" and "cpuacct" together */
arg_join_controllers = new(char**, 2);
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
index 07794df049..c10c6dad1c 100644
--- a/src/core/mount-setup.c
+++ b/src/core/mount-setup.c
@@ -190,8 +190,7 @@ int mount_cgroup_controllers(char ***join_controllers) {
controllers = set_new(string_hash_func, string_compare_func);
if (!controllers) {
- r = -ENOMEM;
- log_error("Failed to allocate controller set.");
+ r = log_oom();
goto finish;
}
@@ -262,9 +261,8 @@ int mount_cgroup_controllers(char ***join_controllers) {
options = strv_join(*k, ",");
if (!options) {
- log_error("Failed to join options");
free(controller);
- r = -ENOMEM;
+ r = log_oom();
goto finish;
}
@@ -275,9 +273,8 @@ int mount_cgroup_controllers(char ***join_controllers) {
where = strappend("/sys/fs/cgroup/", options);
if (!where) {
- log_error("Failed to build path");
free(options);
- r = -ENOMEM;
+ r = log_oom();
goto finish;
}
@@ -306,8 +303,7 @@ int mount_cgroup_controllers(char ***join_controllers) {
t = strappend("/sys/fs/cgroup/", *i);
if (!t) {
- log_error("Failed to build path");
- r = -ENOMEM;
+ r = log_oom();
free(options);
goto finish;
}