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. It it not working for -o remount,_netdev. But that looks like a libmount issue in that the ROOT field is not being set in utab on a remount, so if the initial mount did not require a utab entry then remount options never get merge in properly in mnt_table_parse_mtab --- src/core/mount.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/core/mount.c b/src/core/mount.c index 7d77021..092a720 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1436,6 +1436,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; -- 1.9.3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel