X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fswap.c;h=0a1cc80936837868a4140141b16d0e7a7ccb2e31;hb=25fa306ed58b0b7fe30ca9be37c66a7b3b2de70e;hp=1204386cdbc144e3984bdc5dc35172ce1d28825b;hpb=47cb901e38cd7092576fc8e76cc4a14f39bf719d;p=elogind.git diff --git a/src/core/swap.c b/src/core/swap.c index 1204386cd..0a1cc8093 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -191,20 +191,16 @@ static int swap_arm_timer(Swap *s) { } static int swap_add_device_links(Swap *s) { - SwapParameters *p; - assert(s); if (!s->what) return 0; - if (s->from_fragment) - p = &s->parameters_fragment; - else + if (!s->from_fragment) return 0; if (is_device_path(s->what)) - return unit_add_node_link(UNIT(s), s->what, !p->noauto && UNIT(s)->manager->running_as == SYSTEMD_SYSTEM); + return unit_add_node_link(UNIT(s), s->what, UNIT(s)->manager->running_as == SYSTEMD_SYSTEM); else /* File based swap devices need to be ordered after * systemd-remount-fs.service, since they might need a @@ -213,7 +209,6 @@ static int swap_add_device_links(Swap *s) { } static int swap_add_default_dependencies(Swap *s) { - bool nofail, noauto; int r; assert(s); @@ -236,17 +231,7 @@ static int swap_add_default_dependencies(Swap *s) { * manually, and should not become a dependency of swap.target. */ return 0; - nofail = s->parameters_fragment.nofail; - noauto = s->parameters_fragment.noauto; - - if (!noauto) { - if (nofail) - r = unit_add_dependency_by_name_inverse(UNIT(s), UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); - else - r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); - } - - return r < 0 ? r : 0; + return unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); } static int swap_verify(Swap *s) { @@ -371,8 +356,6 @@ static int swap_add_one( const char *what, const char *what_proc_swaps, int priority, - bool noauto, - bool nofail, bool set_flags) { _cleanup_free_ char *e = NULL; @@ -435,8 +418,6 @@ static int swap_add_one( SWAP(u)->from_proc_swaps = true; p->priority = priority; - p->noauto = noauto; - p->nofail = nofail; unit_add_to_dbus_queue(u); @@ -460,7 +441,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool assert(m); - r = swap_add_one(m, device, device, prio, false, false, set_flags); + r = swap_add_one(m, device, device, prio, set_flags); if (r < 0) return r; @@ -476,7 +457,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool /* Add the main device node */ dn = udev_device_get_devnode(d); if (dn && !streq(dn, device)) - swap_add_one(m, dn, device, prio, false, false, set_flags); + swap_add_one(m, dn, device, prio, set_flags); /* Add additional units for all symlinks */ first = udev_device_get_devlinks_list_entry(d); @@ -497,7 +478,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool st.st_rdev != udev_device_get_devnum(d)) continue; - swap_add_one(m, p, device, prio, false, false, set_flags); + swap_add_one(m, p, device, prio, set_flags); } return r; @@ -606,12 +587,8 @@ static void swap_dump(Unit *u, FILE *f, const char *prefix) { if (p) fprintf(f, "%sPriority: %i\n" - "%sNoAuto: %s\n" - "%sNoFail: %s\n" "%sOptions: %s\n", prefix, p->priority, - prefix, yes_no(p->noauto), - prefix, yes_no(p->nofail), prefix, strempty(p->options)); if (s->control_pid > 0) @@ -650,6 +627,7 @@ static int swap_spawn(Swap *s, ExecCommand *c, pid_t *_pid) { exec_params.confirm_spawn = UNIT(s)->manager->confirm_spawn; exec_params.cgroup_supported = UNIT(s)->manager->cgroup_supported; exec_params.cgroup_path = UNIT(s)->cgroup_path; + exec_params.cgroup_delegate = s->cgroup_context.delegate; exec_params.runtime_prefix = manager_get_runtime_prefix(UNIT(s)->manager); exec_params.unit_id = UNIT(s)->id; @@ -710,7 +688,8 @@ static void swap_enter_signal(Swap *s, SwapState state, SwapResult f) { r = unit_kill_context( UNIT(s), &s->kill_context, - state != SWAP_ACTIVATING_SIGTERM && state != SWAP_DEACTIVATING_SIGTERM, + (state != SWAP_ACTIVATING_SIGTERM && state != SWAP_DEACTIVATING_SIGTERM) ? + KILL_KILL : KILL_TERMINATE, -1, s->control_pid, false);