X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmount.c;h=a9798370711d607843b9b6488ce25def8c74e9dd;hb=530a9662aa3d291555e5b3f6eb43199e1b04f63c;hp=b4b6080ea8f70a650ad0adfbfb98a8bd71abdedf;hpb=6db615c17ee7a434f9e0c40d67a1f833d8f3cc9d;p=elogind.git diff --git a/src/core/mount.c b/src/core/mount.c index b4b6080ea..a97983707 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -123,12 +123,6 @@ static void mount_init(Unit *u) { m->timeout_usec = u->manager->default_timeout_start_usec; m->directory_mode = 0755; - exec_context_init(&m->exec_context); - kill_context_init(&m->kill_context); - cgroup_context_init(&m->cgroup_context); - - unit_cgroup_context_init_defaults(u, &m->cgroup_context); - if (unit_has_name(u, "-.mount")) { /* Don't allow start/stop for root directory */ u->refuse_manual_start = true; @@ -169,7 +163,12 @@ static int mount_arm_timer(Mount *m) { return sd_event_source_set_enabled(m->timer_event_source, SD_EVENT_ONESHOT); } - return sd_event_add_monotonic(UNIT(m)->manager->event, &m->timer_event_source, now(CLOCK_MONOTONIC) + m->timeout_usec, 0, mount_dispatch_timer, m); + return sd_event_add_time( + UNIT(m)->manager->event, + &m->timer_event_source, + CLOCK_MONOTONIC, + now(CLOCK_MONOTONIC) + m->timeout_usec, 0, + mount_dispatch_timer, m); } static void mount_unwatch_control_pid(Mount *m) { @@ -203,8 +202,6 @@ static void mount_done(Unit *u) { mount_parameters_done(&m->parameters_proc_self_mountinfo); mount_parameters_done(&m->parameters_fragment); - cgroup_context_done(&m->cgroup_context); - exec_context_done(&m->exec_context); m->exec_runtime = exec_runtime_unref(m->exec_runtime); exec_command_done_array(m->exec_command, _MOUNT_EXEC_COMMAND_MAX); m->control_command = NULL; @@ -529,10 +526,6 @@ static int mount_add_extras(Mount *m) { path_kill_slashes(m->where); - r = unit_add_exec_dependencies(u, &m->exec_context); - if (r < 0) - return r; - if (!u->description) { r = unit_set_description(u, m->where); if (r < 0) @@ -551,24 +544,28 @@ static int mount_add_extras(Mount *m) { if (r < 0) return r; - if (u->default_dependencies) { - r = mount_add_default_dependencies(m); - if (r < 0) - return r; - } + r = unit_patch_contexts(u); + if (r < 0) + return r; - r = unit_add_default_slice(u); + r = unit_add_exec_dependencies(u, &m->exec_context); if (r < 0) return r; - r = mount_fix_timeouts(m); + r = unit_add_default_slice(u, &m->cgroup_context); if (r < 0) return r; - r = unit_exec_context_patch_defaults(u, &m->exec_context); + r = mount_fix_timeouts(m); if (r < 0) return r; + if (u->default_dependencies) { + r = mount_add_default_dependencies(m); + if (r < 0) + return r; + } + return 0; }