diff options
author | Franck Bui <fbui@suse.com> | 2020-04-02 10:52:24 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-05-31 07:05:13 +0200 |
commit | e1c091b6d4c55de5c5356e8ca5564dba6769b49f (patch) | |
tree | 435addffee359491d2f6b3668ac1558096533905 | |
parent | ae05a137c9d4a9719ee24f4063bbb704eefc6958 (diff) | |
download | systemd-e1c091b6d4c55de5c5356e8ca5564dba6769b49f.tar.gz |
automount: fix handling of default dependencies for automount units
First After=local-fs-pre.target wasn't described in the man page although it's
part of the default dependencies automatically set by pid1.
Secondly, Before=local-fs.target was only set if the automount unit was
generated from the fstab-generator because the dep was explicitly
generated. It was also not documented as a default dependency.
Fix it by managing the dep from pid1 instead.
(cherry picked from commit b3d7aef525dc1620a7948ffdbf3f36bfa3d5b5e8)
-rw-r--r-- | man/systemd.automount.xml | 4 | ||||
-rw-r--r-- | src/core/automount.c | 4 | ||||
-rw-r--r-- | src/fstab-generator/fstab-generator.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/man/systemd.automount.xml b/man/systemd.automount.xml index f2ed761021..35690fd22a 100644 --- a/man/systemd.automount.xml +++ b/man/systemd.automount.xml @@ -86,6 +86,10 @@ <listitem><para>Automount units acquire automatic <varname>Before=</varname> and <varname>Conflicts=</varname> on <filename>umount.target</filename> in order to be stopped during shutdown.</para></listitem> + + <listitem><para>Automount units automatically gain an <varname>After=</varname> dependency + on <filename>local-fs-pre.target</filename>, and a <varname>Before=</varname> dependency on + <filename>local-fs.target</filename>.</para></listitem> </itemizedlist> </refsect2> </refsect1> diff --git a/src/core/automount.c b/src/core/automount.c index 0b3f498bfc..99b4eb2c81 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -152,6 +152,10 @@ static int automount_add_default_dependencies(Automount *a) { if (!MANAGER_IS_SYSTEM(UNIT(a)->manager)) return 0; + r = unit_add_dependency_by_name(UNIT(a), UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, true, UNIT_DEPENDENCY_DEFAULT); + if (r < 0) + return r; + r = unit_add_dependency_by_name(UNIT(a), UNIT_AFTER, SPECIAL_LOCAL_FS_PRE_TARGET, true, UNIT_DEPENDENCY_DEFAULT); if (r < 0) return r; diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index ceb383b1a6..bc1bcb2785 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -520,8 +520,6 @@ static int add_mount( "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", source); - fprintf(f, "Before=%s\n", post); - if (opts) { r = write_after(f, opts); if (r < 0) |