diff options
author | 2013-11-06 03:15:16 +0100 | |
---|---|---|
committer | 2013-11-06 03:15:16 +0100 | |
commit | 74df0fca09b3c31ed19e14ba80f996fdff772417 (patch) | |
tree | 6910dfb512fa634c8e65a5c938f24d4dc133d716 /src/fstab-generator | |
parent | nspawn: explicitly terminate machines when we exit nspawn (diff) | |
download | systemd-74df0fca09b3c31ed19e14ba80f996fdff772417.tar.gz systemd-74df0fca09b3c31ed19e14ba80f996fdff772417.tar.bz2 systemd-74df0fca09b3c31ed19e14ba80f996fdff772417.zip |
util: unify reading of /proc/cmdline
Instead of individually checking for containers in each user do this
once in a new call proc_cmdline() that read the file only if we are not
in a container.
Diffstat (limited to 'src/fstab-generator')
-rw-r--r-- | src/fstab-generator/fstab-generator.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 78d7609c6..96b090614 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -32,7 +32,6 @@ #include "mount-setup.h" #include "special.h" #include "mkdir.h" -#include "virt.h" #include "fileio.h" static const char *arg_dest = "/tmp"; @@ -395,16 +394,16 @@ static int parse_fstab(const char *prefix, bool initrd) { static int parse_new_root_from_proc_cmdline(void) { _cleanup_free_ char *what = NULL, *type = NULL, *opts = NULL, *line = NULL; + bool noauto, nofail; char *w, *state; - int r; size_t l; - bool noauto, nofail; + int r; - r = read_one_line_file("/proc/cmdline", &line); - if (r < 0) { - log_error("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); + if (r <= 0) return 0; - } opts = strdup("ro"); type = strdup("auto"); @@ -477,17 +476,14 @@ static int parse_new_root_from_proc_cmdline(void) { static int parse_proc_cmdline(void) { _cleanup_free_ char *line = NULL; char *w, *state; - int r; size_t l; + int r; - if (detect_container(NULL) > 0) - return 0; - - r = read_one_line_file("/proc/cmdline", &line); - if (r < 0) { + r = proc_cmdline(&line); + if (r < 0) log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); + if (r <= 0) return 0; - } FOREACH_WORD_QUOTED(w, l, line, state) { _cleanup_free_ char *word = NULL; |