diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-07-07 20:06:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-07 20:06:18 +0200 |
commit | 2e2f6a01a008156ed457040c4757fa541be4a055 (patch) | |
tree | f59452b2ff81567c687a53f2b38548fbbb5763d1 | |
parent | 5dc60faae58b9e0b7b916888ad88656d269cf9d0 (diff) | |
parent | 6371e69b498ee40204f6f7a75951b7eb04746873 (diff) | |
download | systemd-2e2f6a01a008156ed457040c4757fa541be4a055.tar.gz |
Merge pull request #16143 from fbuihuu/fstab-generator-fix
fstab-generator: make sure explicit deps configured via mount options apply to .mount, not .automount unit
-rw-r--r-- | man/systemd.mount.xml | 12 | ||||
-rw-r--r-- | src/fstab-generator/fstab-generator.c | 55 |
2 files changed, 36 insertions, 31 deletions
diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml index f5a9d446e9..9e1f5d40fd 100644 --- a/man/systemd.mount.xml +++ b/man/systemd.mount.xml @@ -204,7 +204,11 @@ system that merges multiple mount points). See <varname>After=</varname> and <varname>Requires=</varname> in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> - for details.</para></listitem> + for details.</para> + + <para>Note that this option always applies to the created mount unit + only regardless whether <option>x-systemd.automount</option> has been + specified.</para></listitem> </varlistentry> <varlistentry> @@ -223,7 +227,11 @@ unit. See <varname>Before=</varname> and <varname>After=</varname> in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> - for details.</para></listitem> + for details.</para> + + <para>Note that these options always apply to the created mount unit + only regardless whether <option>x-systemd.automount</option> has been + specified.</para></listitem> </varlistentry> <varlistentry> diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 77b90e1a9b..91581aed30 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -314,6 +314,29 @@ static int write_requires_mounts_for(FILE *f, const char *opts) { return 0; } +static int write_extra_dependencies(FILE *f, const char *opts) { + int r; + + assert(f); + + if (opts) { + r = write_after(f, opts); + if (r < 0) + return r; + r = write_requires_after(f, opts); + if (r < 0) + return r; + r = write_before(f, opts); + if (r < 0) + return r; + r = write_requires_mounts_for(f, opts); + if (r < 0) + return r; + } + + return 0; +} + static int add_mount( const char *dest, const char *what, @@ -406,20 +429,9 @@ static int add_mount( SET_FLAG(flags, NOFAIL, true); } - if (!(flags & AUTOMOUNT) && opts) { - r = write_after(f, opts); - if (r < 0) - return r; - r = write_requires_after(f, opts); - if (r < 0) - return r; - r = write_before(f, opts); - if (r < 0) - return r; - r = write_requires_mounts_for(f, opts); - if (r < 0) - return r; - } + r = write_extra_dependencies(f, opts); + if (r < 0) + return r; if (passno != 0) { r = generator_write_fsck_deps(f, dest, what, where, fstype); @@ -530,21 +542,6 @@ static int add_mount( "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", source); - if (opts) { - r = write_after(f, opts); - if (r < 0) - return r; - r = write_requires_after(f, opts); - if (r < 0) - return r; - r = write_before(f, opts); - if (r < 0) - return r; - r = write_requires_mounts_for(f, opts); - if (r < 0) - return r; - } - fprintf(f, "\n" "[Automount]\n" |