diff options
author | Chris Leech <cleech@redhat.com> | 2014-11-23 20:33:40 -0800 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-11-28 14:30:50 -0500 |
commit | a6d305f91d722e136c29222070efed5c5d8b120b (patch) | |
tree | 0ac59a8e007138cd618f3efff1171f9dca1d4d82 /src | |
parent | befb6d54948480f836d53d633bef27e3505818c1 (diff) |
mount: add remote-fs dependencies if needed after change
This is an attempt to add it the remote-fs dependencies to a mount unit
if the options change, like when the utab options are picked up after
mountinfo has already been processed. It just adds the remote-fs
dependencies, leaving the local-fs ones in place.
With this change I always get mount units with proper remote-fs
dependencies when mounted with the _netdev option.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/mount.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/mount.c b/src/core/mount.c index c961677ff9..e62a5f1b17 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1438,6 +1438,19 @@ static int mount_add_one( } } + if (m->running_as == SYSTEMD_SYSTEM) { + const char* target; + + target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : NULL; + /* _netdev option may have shown up late, or on a + * remount. Add remote-fs dependencies, even though + * local-fs ones may already be there */ + if (target) { + unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true); + load_extras = true; + } + } + if (u->load_state == UNIT_NOT_FOUND) { u->load_state = UNIT_LOADED; u->load_error = 0; |