chiark / gitweb /
fstab-generator: the root partition is not optional
authorLennart Poettering <lennart@poettering.net>
Fri, 7 Mar 2014 01:39:59 +0000 (02:39 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 7 Mar 2014 01:40:24 +0000 (02:40 +0100)
src/fstab-generator/fstab-generator.c

index 57d0a53f2847051759f3cd4c999ed84c64b86023..34cd720517d7ea260d1330b0110534dc37fe0aea 100644 (file)
@@ -189,6 +189,7 @@ static int add_mount(
                 return 0;
 
         if (path_equal(where, "/")) {
+                /* The root disk is not an option */
                 automount = false;
                 noauto = false;
                 nofail = false;
@@ -219,9 +220,7 @@ static int add_mount(
                 source);
 
         if (post && !noauto && !nofail && !automount)
-                fprintf(f,
-                        "Before=%s\n",
-                        post);
+                fprintf(f, "Before=%s\n", post);
 
         if (passno != 0) {
                 r = generator_write_fsck_deps(f, arg_dest, what, where, fstype);
@@ -249,17 +248,15 @@ static int add_mount(
                 return -errno;
         }
 
-        if (!noauto) {
-                if (post) {
-                        lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
-                        if (!lnk)
-                                return log_oom();
-
-                        mkdir_parents_label(lnk, 0755);
-                        if (symlink(unit, lnk) < 0) {
-                                log_error("Failed to create symlink %s: %m", lnk);
-                                return -errno;
-                        }
+        if (!noauto && post) {
+                lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL);
+                if (!lnk)
+                        return log_oom();
+
+                mkdir_parents_label(lnk, 0755);
+                if (symlink(unit, lnk) < 0) {
+                        log_error("Failed to create symlink %s: %m", lnk);
+                        return -errno;
                 }
         }
 
@@ -395,7 +392,6 @@ static int parse_fstab(bool initrd) {
 
 static int add_root_mount(void) {
         _cleanup_free_ char *o = NULL, *what = NULL;
-        bool noauto, nofail;
 
         if (isempty(arg_root_what)) {
                 log_debug("Could not find a root= entry on the kernel commandline.");
@@ -421,16 +417,14 @@ static int add_root_mount(void) {
         if (!o)
                 return log_oom();
 
-        noauto = mount_test_option(arg_root_options, "noauto");
-        nofail = mount_test_option(arg_root_options, "nofail");
-
         log_debug("Found entry what=%s where=/sysroot type=%s", what, strna(arg_root_fstype));
         return add_mount(what,
                          "/sysroot",
                          arg_root_fstype,
                          o,
                          1,
-                         noauto, nofail,
+                         false,
+                         false,
                          false,
                          SPECIAL_INITRD_ROOT_FS_TARGET,
                          "/proc/cmdline");