Zbigniew Jędrzejewski-Szmek a48f80
From 312596e3f42fd488b652c6234d085c32459e4552 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek a48f80
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek a48f80
Date: Sat, 2 May 2015 12:01:29 -0500
Zbigniew Jędrzejewski-Szmek a48f80
Subject: [PATCH] generators: rename add_{root,usr}_mount to
Zbigniew Jędrzejewski-Szmek a48f80
 add_{sysroot,sysroot_usr}_mount
Zbigniew Jędrzejewski-Szmek a48f80
Zbigniew Jędrzejewski-Szmek a48f80
This makes it obvious that those functions are only usable in the
Zbigniew Jędrzejewski-Szmek a48f80
initramfs.
Zbigniew Jędrzejewski-Szmek a48f80
Zbigniew Jędrzejewski-Szmek a48f80
Also, add a warning when noauto, nofail, or automount is used for the
Zbigniew Jędrzejewski-Szmek a48f80
root fs, instead of silently ignoring. Using those options would be a
Zbigniew Jędrzejewski-Szmek a48f80
sign of significant misconfiguration, and if we bother to check for
Zbigniew Jędrzejewski-Szmek a48f80
them, than let's go all the way and complain.
Zbigniew Jędrzejewski-Szmek a48f80
Zbigniew Jędrzejewski-Szmek a48f80
Other various small cleanups and reformattings elsewhere.
Zbigniew Jędrzejewski-Szmek a48f80
Zbigniew Jędrzejewski-Szmek a48f80
(cherry picked from commit 2e8522767e27d5686206794c69e0aa95da6e798b)
Zbigniew Jędrzejewski-Szmek a48f80
---
Zbigniew Jędrzejewski-Szmek a48f80
 src/fstab-generator/fstab-generator.c | 20 ++++++++++++--------
Zbigniew Jędrzejewski-Szmek a48f80
 src/shared/generator.c                | 21 ++++++++++++---------
Zbigniew Jędrzejewski-Szmek a48f80
 src/shared/generator.h                | 17 +++++++++++++----
Zbigniew Jędrzejewski-Szmek a48f80
 3 files changed, 37 insertions(+), 21 deletions(-)
Zbigniew Jędrzejewski-Szmek a48f80
Zbigniew Jędrzejewski-Szmek a48f80
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
Zbigniew Jędrzejewski-Szmek a48f80
index 8e2f522bd0..9fa2d860df 100644
Zbigniew Jędrzejewski-Szmek a48f80
--- a/src/fstab-generator/fstab-generator.c
Zbigniew Jędrzejewski-Szmek a48f80
+++ b/src/fstab-generator/fstab-generator.c
Zbigniew Jędrzejewski-Szmek a48f80
@@ -192,10 +192,14 @@ static int add_mount(
Zbigniew Jędrzejewski-Szmek a48f80
                 return 0;
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         if (path_equal(where, "/")) {
Zbigniew Jędrzejewski-Szmek a48f80
-                /* The root disk is not an option */
Zbigniew Jędrzejewski-Szmek a48f80
-                automount = false;
Zbigniew Jędrzejewski-Szmek a48f80
-                noauto = false;
Zbigniew Jędrzejewski-Szmek a48f80
-                nofail = false;
Zbigniew Jędrzejewski-Szmek a48f80
+                if (noauto)
Zbigniew Jędrzejewski-Szmek a48f80
+                        log_warning("Ignoring \"noauto\" for root device");
Zbigniew Jędrzejewski-Szmek a48f80
+                if (nofail)
Zbigniew Jędrzejewski-Szmek a48f80
+                        log_warning("Ignoring \"nofail\" for root device");
Zbigniew Jędrzejewski-Szmek a48f80
+                if (automount)
Zbigniew Jędrzejewski-Szmek a48f80
+                        log_warning("Ignoring automount option for root device");
Zbigniew Jędrzejewski-Szmek a48f80
+
Zbigniew Jędrzejewski-Szmek a48f80
+                noauto = nofail = automount = false;
Zbigniew Jędrzejewski-Szmek a48f80
         }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         name = unit_name_from_path(where, ".mount");
Zbigniew Jędrzejewski-Szmek a48f80
@@ -394,7 +398,7 @@ static int parse_fstab(bool initrd) {
Zbigniew Jędrzejewski-Szmek a48f80
         return r;
Zbigniew Jędrzejewski-Szmek a48f80
 }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-static int add_root_mount(void) {
Zbigniew Jędrzejewski-Szmek a48f80
+static int add_sysroot_mount(void) {
Zbigniew Jędrzejewski-Szmek a48f80
         _cleanup_free_ char *what = NULL;
Zbigniew Jędrzejewski-Szmek a48f80
         const char *opts;
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
@@ -430,7 +434,7 @@ static int add_root_mount(void) {
Zbigniew Jędrzejewski-Szmek a48f80
                          "/proc/cmdline");
Zbigniew Jędrzejewski-Szmek a48f80
 }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-static int add_usr_mount(void) {
Zbigniew Jędrzejewski-Szmek a48f80
+static int add_sysroot_usr_mount(void) {
Zbigniew Jędrzejewski-Szmek a48f80
         _cleanup_free_ char *what = NULL;
Zbigniew Jędrzejewski-Szmek a48f80
         const char *opts;
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
@@ -577,9 +581,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         /* Always honour root= and usr= in the kernel command line if we are in an initrd */
Zbigniew Jędrzejewski-Szmek a48f80
         if (in_initrd()) {
Zbigniew Jędrzejewski-Szmek a48f80
-                r = add_root_mount();
Zbigniew Jędrzejewski-Szmek a48f80
+                r = add_sysroot_mount();
Zbigniew Jędrzejewski-Szmek a48f80
                 if (r == 0)
Zbigniew Jędrzejewski-Szmek a48f80
-                        r = add_usr_mount();
Zbigniew Jędrzejewski-Szmek a48f80
+                        r = add_sysroot_usr_mount();
Zbigniew Jędrzejewski-Szmek a48f80
         }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         /* Honour /etc/fstab only when that's enabled */
Zbigniew Jędrzejewski-Szmek a48f80
diff --git a/src/shared/generator.c b/src/shared/generator.c
Zbigniew Jędrzejewski-Szmek a48f80
index 7f16d5cbef..cd37812f86 100644
Zbigniew Jędrzejewski-Szmek a48f80
--- a/src/shared/generator.c
Zbigniew Jędrzejewski-Szmek a48f80
+++ b/src/shared/generator.c
Zbigniew Jędrzejewski-Szmek a48f80
@@ -33,13 +33,13 @@
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
 int generator_write_fsck_deps(
Zbigniew Jędrzejewski-Szmek a48f80
                 FILE *f,
Zbigniew Jędrzejewski-Szmek a48f80
-                const char *dest,
Zbigniew Jędrzejewski-Szmek a48f80
+                const char *dir,
Zbigniew Jędrzejewski-Szmek a48f80
                 const char *what,
Zbigniew Jędrzejewski-Szmek a48f80
                 const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
                 const char *fstype) {
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         assert(f);
Zbigniew Jędrzejewski-Szmek a48f80
-        assert(dest);
Zbigniew Jędrzejewski-Szmek a48f80
+        assert(dir);
Zbigniew Jędrzejewski-Szmek a48f80
         assert(what);
Zbigniew Jędrzejewski-Szmek a48f80
         assert(where);
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
@@ -59,10 +59,10 @@ int generator_write_fsck_deps(
Zbigniew Jędrzejewski-Szmek a48f80
                         return log_warning_errno(r, "Checking was requested for %s, but fsck.%s cannot be used: %m", what, fstype);
Zbigniew Jędrzejewski-Szmek a48f80
         }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-        if (streq(where, "/")) {
Zbigniew Jędrzejewski-Szmek a48f80
+        if (path_equal(where, "/")) {
Zbigniew Jędrzejewski-Szmek a48f80
                 char *lnk;
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-                lnk = strjoina(dest, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service");
Zbigniew Jędrzejewski-Szmek a48f80
+                lnk = strjoina(dir, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service");
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
                 mkdir_parents(lnk, 0755);
Zbigniew Jędrzejewski-Szmek a48f80
                 if (symlink(SYSTEM_DATA_UNIT_PATH "/systemd-fsck-root.service", lnk) < 0)
Zbigniew Jędrzejewski-Szmek a48f80
@@ -76,17 +76,20 @@ int generator_write_fsck_deps(
Zbigniew Jędrzejewski-Szmek a48f80
                         return log_oom();
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
                 fprintf(f,
Zbigniew Jędrzejewski-Szmek a48f80
-                        "RequiresOverridable=%s\n"
Zbigniew Jędrzejewski-Szmek a48f80
-                        "After=%s\n",
Zbigniew Jędrzejewski-Szmek a48f80
-                        fsck,
Zbigniew Jędrzejewski-Szmek a48f80
+                        "RequiresOverridable=%1$s\n"
Zbigniew Jędrzejewski-Szmek a48f80
+                        "After=%1$s\n",
Zbigniew Jędrzejewski-Szmek a48f80
                         fsck);
Zbigniew Jędrzejewski-Szmek a48f80
         }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         return 0;
Zbigniew Jędrzejewski-Szmek a48f80
 }
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-int generator_write_timeouts(const char *dir, const char *what, const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
-                             const char *opts, char **filtered) {
Zbigniew Jędrzejewski-Szmek a48f80
+int generator_write_timeouts(
Zbigniew Jędrzejewski-Szmek a48f80
+                const char *dir,
Zbigniew Jędrzejewski-Szmek a48f80
+                const char *what,
Zbigniew Jędrzejewski-Szmek a48f80
+                const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
+                const char *opts,
Zbigniew Jędrzejewski-Szmek a48f80
+                char **filtered) {
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
         /* Allow configuration how long we wait for a device that
Zbigniew Jędrzejewski-Szmek a48f80
          * backs a mount point to show up. This is useful to support
Zbigniew Jędrzejewski-Szmek a48f80
diff --git a/src/shared/generator.h b/src/shared/generator.h
Zbigniew Jędrzejewski-Szmek a48f80
index 64bd28f596..6c3f38abba 100644
Zbigniew Jędrzejewski-Szmek a48f80
--- a/src/shared/generator.h
Zbigniew Jędrzejewski-Szmek a48f80
+++ b/src/shared/generator.h
Zbigniew Jędrzejewski-Szmek a48f80
@@ -23,7 +23,16 @@
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
 #include <stdio.h>
Zbigniew Jędrzejewski-Szmek a48f80
 
Zbigniew Jędrzejewski-Szmek a48f80
-int generator_write_fsck_deps(FILE *f, const char *dest, const char *what, const char *where, const char *type);
Zbigniew Jędrzejewski-Szmek a48f80
-
Zbigniew Jędrzejewski-Szmek a48f80
-int generator_write_timeouts(const char *dir, const char *what, const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
-                             const char *opts, char **filtered);
Zbigniew Jędrzejewski-Szmek a48f80
+int generator_write_fsck_deps(
Zbigniew Jędrzejewski-Szmek a48f80
+        FILE *f,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *dir,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *what,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *type);
Zbigniew Jędrzejewski-Szmek a48f80
+
Zbigniew Jędrzejewski-Szmek a48f80
+int generator_write_timeouts(
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *dir,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *what,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *where,
Zbigniew Jędrzejewski-Szmek a48f80
+        const char *opts,
Zbigniew Jędrzejewski-Szmek a48f80
+        char **filtered);