X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ffstab-generator%2Ffstab-generator.c;h=2a779bbccf800cc80dc2233b14e1b2b7de0f0dc6;hb=01264ad1cc27ecaa059857429ed1b4f3994b26c3;hp=c17299f267aefe4ea5247081fbebfff01891f253;hpb=7fd1b19bc9e9f5574f2877936b8ac267c7706947;p=elogind.git diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index c17299f26..2a779bbcc 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -351,7 +351,7 @@ static int add_mount( if (automount && !path_equal(where, "/")) { automount_name = unit_name_from_path(where, ".automount"); - if (!name) + if (!automount_name) return log_oom(); automount_unit = strjoin(arg_dest, "/", automount_name, NULL); @@ -492,6 +492,7 @@ static int parse_new_root_from_proc_cmdline(void) { char *w, *state; int r; size_t l; + bool noauto, nofail; r = read_one_line_file("/proc/cmdline", &line); if (r < 0) { @@ -547,6 +548,9 @@ static int parse_new_root_from_proc_cmdline(void) { } } + noauto = !!strstr(opts, "noauto"); + nofail = !!strstr(opts, "nofail"); + if (!what) { log_debug("Could not find a root= entry on the kernel commandline."); return 0; @@ -558,7 +562,7 @@ static int parse_new_root_from_proc_cmdline(void) { } log_debug("Found entry what=%s where=/sysroot type=%s", what, type); - r = add_mount(what, "/sysroot", type, opts, 0, false, false, false, + r = add_mount(what, "/sysroot", type, opts, 0, noauto, nofail, false, false, NULL, NULL, NULL, SPECIAL_INITRD_ROOT_FS_TARGET, "/proc/cmdline"); return (r < 0) ? r : 0; @@ -596,9 +600,9 @@ static int parse_proc_cmdline(void) { } else if (startswith(word, "rd.fstab=")) { if (in_initrd()) { - r = parse_boolean(word + 6); + r = parse_boolean(word + 9); if (r < 0) - log_warning("Failed to parse fstab switch %s. Ignoring.", word + 6); + log_warning("Failed to parse fstab switch %s. Ignoring.", word + 9); else arg_enabled = r; }