summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-03-27 02:51:33 +0100
committerLennart Poettering <lennart@poettering.net>2013-03-27 02:56:32 +0100
commita63a5c4687d192d89eea9715db2a56c810111de8 (patch)
tree082a90c6a0fafc229bfd5fded9b4e2631804549d
parent1183f9b2252d0ee45ec7ad32ba34be746ceaaf6e (diff)
units: automatically order all mount units after network.target
Previously it was necessary to pull in remote-fs-pre.target to order the mount units against network.target since the ordering was done transitively via remote-fs-pre.target. As network implementations shouldn't need to know about the specific use-case of network mounts we instead now simply order network.target against all mounts too. This should make it unnecessary for network managing services to import remote-fs-pre.target explicitly, as network.target will now suffice.
-rw-r--r--src/core/mount.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index c4074ebd2e..3c63a391db 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -441,7 +441,7 @@ static int mount_add_quota_links(Mount *m) {
static int mount_add_default_dependencies(Mount *m) {
int r;
MountParameters *p;
- const char *after, *setup;
+ const char *after, *after2, *setup;
assert(m);
@@ -458,9 +458,11 @@ static int mount_add_default_dependencies(Mount *m) {
if (mount_is_network(p)) {
after = SPECIAL_REMOTE_FS_PRE_TARGET;
+ after2 = SPECIAL_NETWORK_TARGET;
setup = SPECIAL_REMOTE_FS_SETUP_TARGET;
} else {
after = SPECIAL_LOCAL_FS_PRE_TARGET;
+ after2 = NULL;
setup = NULL;
}
@@ -468,6 +470,12 @@ static int mount_add_default_dependencies(Mount *m) {
if (r < 0)
return r;
+ if (after2) {
+ r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after2, NULL, true);
+ if (r < 0)
+ return r;
+ }
+
if (setup) {
r = unit_add_dependency_by_name(UNIT(m), UNIT_WANTS, setup, NULL, true);
if (r < 0)