X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmount.c;h=36caae3c812d7ee6299a743072449be926872b0b;hp=6da880eb8ff1fcf0c15f34b3d7ce0016ce95a8c9;hb=73c33e7f225f81e6066386fba997e8ea2ba361b3;hpb=74922904348e53a992af63c581d4ccd3317ccce0 diff --git a/src/mount.c b/src/mount.c index 6da880eb8..36caae3c8 100644 --- a/src/mount.c +++ b/src/mount.c @@ -60,10 +60,10 @@ static void mount_init(Unit *u) { assert(u->meta.load_state == UNIT_STUB); m->timeout_usec = DEFAULT_TIMEOUT_USEC; - exec_context_init(&m->exec_context); - m->directory_mode = 0755; + exec_context_init(&m->exec_context); + /* We need to make sure that /bin/mount is always called in * the same process group as us, so that the autofs kernel * side doesn't send us another mount request while we are @@ -253,7 +253,7 @@ static int mount_add_target_links(Mount *m) { else target = SPECIAL_LOCAL_FS_TARGET; - if ((r = manager_load_unit(m->meta.manager, target, NULL, &tu)) < 0) + if ((r = manager_load_unit(m->meta.manager, target, NULL, NULL, &tu)) < 0) return r; if (automount && m->meta.manager->running_as == MANAGER_SYSTEM) { @@ -367,6 +367,12 @@ static int mount_load(Unit *u) { if ((r = unit_add_default_cgroup(u)) < 0) return r; + + if (m->meta.default_dependencies && + m->meta.manager->running_as == MANAGER_SYSTEM && + !path_equal(m->where, "/")) + if ((r = unit_add_two_dependencies_by_name(UNIT(m), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true)) < 0) + return r; } return mount_verify(m); @@ -534,6 +540,7 @@ static int mount_spawn(Mount *m, ExecCommand *c, pid_t *_pid) { m->meta.manager->environment, true, true, + true, m->meta.manager->confirm_spawn, m->meta.cgroup_bondings, &pid)) < 0) @@ -1548,6 +1555,7 @@ const UnitVTable mount_vtable = { .no_alias = true, .no_instances = true, .no_isolate = true, + .show_status = true, .init = mount_init, .load = mount_load,