diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 8e2f522bd..9fa2d860d 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -192,10 +192,14 @@ static int add_mount( return 0; if (path_equal(where, "/")) { - /* The root disk is not an option */ - automount = false; - noauto = false; - nofail = false; + if (noauto) + log_warning("Ignoring \"noauto\" for root device"); + if (nofail) + log_warning("Ignoring \"nofail\" for root device"); + if (automount) + log_warning("Ignoring automount option for root device"); + + noauto = nofail = automount = false; } name = unit_name_from_path(where, ".mount"); @@ -394,7 +398,7 @@ static int parse_fstab(bool initrd) { return r; } -static int add_root_mount(void) { +static int add_sysroot_mount(void) { _cleanup_free_ char *what = NULL; const char *opts; @@ -430,7 +434,7 @@ static int add_root_mount(void) { "/proc/cmdline"); } -static int add_usr_mount(void) { +static int add_sysroot_usr_mount(void) { _cleanup_free_ char *what = NULL; const char *opts; @@ -577,9 +581,9 @@ int main(int argc, char *argv[]) { /* Always honour root= and usr= in the kernel command line if we are in an initrd */ if (in_initrd()) { - r = add_root_mount(); + r = add_sysroot_mount(); if (r == 0) - r = add_usr_mount(); + r = add_sysroot_usr_mount(); } /* Honour /etc/fstab only when that's enabled */ diff --git a/src/shared/generator.c b/src/shared/generator.c index 7f16d5cbe..cd37812f8 100644 --- a/src/shared/generator.c +++ b/src/shared/generator.c @@ -33,13 +33,13 @@ int generator_write_fsck_deps( FILE *f, - const char *dest, + const char *dir, const char *what, const char *where, const char *fstype) { assert(f); - assert(dest); + assert(dir); assert(what); assert(where); @@ -59,10 +59,10 @@ int generator_write_fsck_deps( return log_warning_errno(r, "Checking was requested for %s, but fsck.%s cannot be used: %m", what, fstype); } - if (streq(where, "/")) { + if (path_equal(where, "/")) { char *lnk; - lnk = strjoina(dest, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service"); + lnk = strjoina(dir, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service"); mkdir_parents(lnk, 0755); if (symlink(SYSTEM_DATA_UNIT_PATH "/systemd-fsck-root.service", lnk) < 0) @@ -76,17 +76,20 @@ int generator_write_fsck_deps( return log_oom(); fprintf(f, - "RequiresOverridable=%s\n" - "After=%s\n", - fsck, + "RequiresOverridable=%1$s\n" + "After=%1$s\n", fsck); } return 0; } -int generator_write_timeouts(const char *dir, const char *what, const char *where, - const char *opts, char **filtered) { +int generator_write_timeouts( + const char *dir, + const char *what, + const char *where, + const char *opts, + char **filtered) { /* Allow configuration how long we wait for a device that * backs a mount point to show up. This is useful to support diff --git a/src/shared/generator.h b/src/shared/generator.h index 64bd28f59..6c3f38abb 100644 --- a/src/shared/generator.h +++ b/src/shared/generator.h @@ -23,7 +23,16 @@ #include -int generator_write_fsck_deps(FILE *f, const char *dest, const char *what, const char *where, const char *type); +int generator_write_fsck_deps( + FILE *f, + const char *dir, + const char *what, + const char *where, + const char *type); -int generator_write_timeouts(const char *dir, const char *what, const char *where, - const char *opts, char **filtered); +int generator_write_timeouts( + const char *dir, + const char *what, + const char *where, + const char *opts, + char **filtered);