[systemd-devel] [PATCH 1/3] generators: rename add_{root, usr}_mount to add_{sysroot, sysroot_usr}_mount
Lennart Poettering
lennart at poettering.net
Sun May 3 17:56:31 PDT 2015
On Sat, 02.05.15 13:16, Zbigniew Jędrzejewski-Szmek (zbyszek at in.waw.pl) wrote:
> This makes it obvious that those functions are only usable in the
> initramfs.
>
> Also, add a warning when noauto, nofail, or automount is used for the
> root fs, instead of silently ignoring. Using those options would be a
> sign of significant misconfiguration, and if we bother to check for
> them, than let's go all the way and complain.
>
> Other various small cleanups and reformattings elsewhere.
Sounds all good to me!
> ---
> src/fstab-generator/fstab-generator.c | 21 +++++++++++++--------
> src/shared/generator.c | 21 ++++++++++++---------
> src/shared/generator.h | 17 +++++++++++++----
> 3 files changed, 38 insertions(+), 21 deletions(-)
>
> diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
> index 7aee3359e7..664ee2aa6f 100644
> --- a/src/fstab-generator/fstab-generator.c
> +++ b/src/fstab-generator/fstab-generator.c
> @@ -176,6 +176,7 @@ static int write_idle_timeout(FILE *f, const char *where, const char *opts) {
>
> return 0;
> }
> +
> static int add_mount(
> const char *what,
> const char *where,
> @@ -213,10 +214,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");
> @@ -419,7 +424,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;
>
> @@ -453,7 +458,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;
>
> @@ -600,9 +605,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 569b25bb7c..7b2f846175 100644
> --- a/src/shared/generator.c
> +++ b/src/shared/generator.c
> @@ -32,13 +32,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);
>
> @@ -58,10 +58,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)
> @@ -75,17 +75,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 64bd28f596..6c3f38abba 100644
> --- a/src/shared/generator.h
> +++ b/src/shared/generator.h
> @@ -23,7 +23,16 @@
>
> #include <stdio.h>
>
> -int generator_write_fsck_deps(FILE *f, const char *dest, 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_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);
> --
> 2.3.5
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list