chiark / gitweb /
build-sys: add small redirecting Makefiles to simplify compilation from within emacs
[elogind.git] / src / mount.c
index ec03a52f6a7c4442d3f29e4893040dd769624797..921984c1c116a6446ed4bb6facad915b5ac4a87b 100644 (file)
@@ -215,7 +215,7 @@ static int mount_add_target_links(Mount *m) {
         MountParameters *p;
         Unit *tu;
         int r;
-        bool noauto, handle, automount;
+        bool noauto, handle, automount, user;
 
         assert(m);
 
@@ -227,6 +227,7 @@ static int mount_add_target_links(Mount *m) {
                 return 0;
 
         noauto = !!mount_test_option(p->options, MNTOPT_NOAUTO);
+        user = mount_test_option(p->options, "user") || mount_test_option(p->options, "users");
         handle = !!mount_test_option(p->options, "comment=systemd.mount");
         automount = !!mount_test_option(p->options, "comment=systemd.automount");
 
@@ -239,7 +240,7 @@ static int mount_add_target_links(Mount *m) {
         if ((r = manager_load_unit(UNIT(m)->meta.manager, target, NULL, &tu)) < 0)
                 return r;
 
-        if (automount) {
+        if (automount && m->meta.manager->running_as != MANAGER_SESSION) {
                 Unit *am;
 
                 if ((r = unit_load_related_unit(UNIT(m), ".automount", &am)) < 0)
@@ -253,8 +254,9 @@ static int mount_add_target_links(Mount *m) {
         } else {
 
                 if (!noauto && handle)
-                        if ((r = unit_add_dependency(tu, UNIT_WANTS, UNIT(m), true)) < 0)
-                                return r;
+                        if (user || m->meta.manager->running_as != MANAGER_SESSION)
+                                if ((r = unit_add_dependency(tu, UNIT_WANTS, UNIT(m), true)) < 0)
+                                        return r;
 
                 return unit_add_dependency(UNIT(m), UNIT_BEFORE, tu, true);
         }