From: Franck Bui Date: Wed, 1 Apr 2020 15:46:42 +0000 (+0200) Subject: mount: mount unit activated by automount unit should be only ordered against the... X-Git-Tag: v246-rc1~361^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=457d65932b3832cc8fd103d09ffb3e7ea924d07c;p=thirdparty%2Fsystemd.git mount: mount unit activated by automount unit should be only ordered against the automount unit Both fstab-generator and pid1 are duplicating the handling of "Before=local-fs.target" dependency for mount units. fstab-generator is correctly skipping this dep if the mount unit is activated by an automount unit. However the condition used by pid1 was incorrect and missed the case when a mount unit uses "x-systemd.automount" since in this case the mount unit should be (only) ordered against its automount unit counterpart instead. --- diff --git a/src/core/mount.c b/src/core/mount.c index 4be4c1781a4..0b57f89c29e 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -66,6 +66,14 @@ static bool MOUNT_STATE_WITH_PROCESS(MountState state) { MOUNT_CLEANING); } +static bool mount_is_automount(const MountParameters *p) { + assert(p); + + return fstab_test_option(p->options, + "comment=systemd.automount\0" + "x-systemd.automount\0"); +} + static bool mount_is_network(const MountParameters *p) { assert(p); @@ -473,7 +481,7 @@ static int mount_add_default_dependencies(Mount *m) { before = SPECIAL_LOCAL_FS_TARGET; } - if (!nofail) { + if (!nofail && !mount_is_automount(p)) { r = unit_add_dependency_by_name(UNIT(m), UNIT_BEFORE, before, true, mask); if (r < 0) return r;