summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranck Bui <fbui@suse.com>2020-04-02 10:52:24 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-05-31 07:05:13 +0200
commite1c091b6d4c55de5c5356e8ca5564dba6769b49f (patch)
tree435addffee359491d2f6b3668ac1558096533905
parentae05a137c9d4a9719ee24f4063bbb704eefc6958 (diff)
downloadsystemd-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.xml4
-rw-r--r--src/core/automount.c4
-rw-r--r--src/fstab-generator/fstab-generator.c2
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)