X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmount.c;h=921984c1c116a6446ed4bb6facad915b5ac4a87b;hp=ec03a52f6a7c4442d3f29e4893040dd769624797;hb=340d89e06e503836de9c124d650845f4889f8c2c;hpb=e99e38bbdcca3fe5956823bdb3d38544ccf93221 diff --git a/src/mount.c b/src/mount.c index ec03a52f6..921984c1c 100644 --- a/src/mount.c +++ b/src/mount.c @@ -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); }