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.
This commit is contained in:
Lennart Poettering
2013-11-06 03:15:16 +01:00
parent 1f0cd86b3d
commit 74df0fca09
15 changed files with 94 additions and 103 deletions
+9 -9
View File
@@ -27,7 +27,6 @@
#include "util.h"
#include "unit-name.h"
#include "mkdir.h"
#include "virt.h"
#include "strv.h"
#include "fileio.h"
@@ -241,20 +240,21 @@ static int create_disk(
return 0;
}
static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char ***arg_proc_cmdline_options, char **arg_proc_cmdline_keyfile) {
static int parse_proc_cmdline(
char ***arg_proc_cmdline_disks,
char ***arg_proc_cmdline_options,
char **arg_proc_cmdline_keyfile) {
_cleanup_free_ char *line = NULL;
char *w = NULL, *state = NULL;
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;