diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-11-28 20:22:31 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2018-12-07 17:35:32 +0100 |
commit | 15332d738f4002d3ac7ae4e1da0f8da93c72a80c (patch) | |
tree | 1b8a0d55ac49b24593afe3ef470616ef62a0437e /src/core/swap.c | |
parent | ba6fbb2cee3cafc5b51120021c3dfea002870108 (diff) | |
download | systemd-15332d738f4002d3ac7ae4e1da0f8da93c72a80c.tar.gz |
swap: split out code adding in additional unit props into a function of its own
This adds swap_add_extras() similar to mount_add_extras().
No change in behaviour, just some refactoring.
Diffstat (limited to 'src/core/swap.c')
-rw-r--r-- | src/core/swap.c | 113 |
1 files changed, 63 insertions, 50 deletions
diff --git a/src/core/swap.c b/src/core/swap.c index 50da43f8a7..8370414b79 100644 --- a/src/core/swap.c +++ b/src/core/swap.c @@ -273,76 +273,89 @@ static int swap_load_devnode(Swap *s) { return swap_set_devnode(s, p); } -static int swap_load(Unit *u) { +static int swap_add_extras(Swap *s) { int r; - Swap *s = SWAP(u); assert(s); - assert(u->load_state == UNIT_STUB); - /* Load a .swap file */ - if (SWAP(u)->from_proc_swaps) - r = unit_load_fragment_and_dropin_optional(u); - else - r = unit_load_fragment_and_dropin(u); + if (UNIT(s)->fragment_path) + s->from_fragment = true; + + if (!s->what) { + if (s->parameters_fragment.what) + s->what = strdup(s->parameters_fragment.what); + else if (s->parameters_proc_swaps.what) + s->what = strdup(s->parameters_proc_swaps.what); + else { + r = unit_name_to_path(UNIT(s)->id, &s->what); + if (r < 0) + return r; + } + + if (!s->what) + return -ENOMEM; + } + + path_simplify(s->what, false); + + if (!UNIT(s)->description) { + r = unit_set_description(UNIT(s), s->what); + if (r < 0) + return r; + } + + r = unit_require_mounts_for(UNIT(s), s->what, UNIT_DEPENDENCY_IMPLICIT); if (r < 0) return r; - if (u->load_state == UNIT_LOADED) { + r = swap_add_device_dependencies(s); + if (r < 0) + return r; - if (UNIT(s)->fragment_path) - s->from_fragment = true; - - if (!s->what) { - if (s->parameters_fragment.what) - s->what = strdup(s->parameters_fragment.what); - else if (s->parameters_proc_swaps.what) - s->what = strdup(s->parameters_proc_swaps.what); - else { - r = unit_name_to_path(u->id, &s->what); - if (r < 0) - return r; - } + r = swap_load_devnode(s); + if (r < 0) + return r; - if (!s->what) - return -ENOMEM; - } + r = unit_patch_contexts(UNIT(s)); + if (r < 0) + return r; - path_simplify(s->what, false); + r = unit_add_exec_dependencies(UNIT(s), &s->exec_context); + if (r < 0) + return r; - if (!UNIT(s)->description) { - r = unit_set_description(u, s->what); - if (r < 0) - return r; - } + r = unit_set_default_slice(UNIT(s)); + if (r < 0) + return r; - r = unit_require_mounts_for(UNIT(s), s->what, UNIT_DEPENDENCY_IMPLICIT); - if (r < 0) - return r; + r = swap_add_default_dependencies(s); + if (r < 0) + return r; - r = swap_add_device_dependencies(s); - if (r < 0) - return r; + return 0; +} - r = swap_load_devnode(s); - if (r < 0) - return r; +static int swap_load(Unit *u) { + Swap *s = SWAP(u); + int r; - r = unit_patch_contexts(u); - if (r < 0) - return r; + assert(s); + assert(u->load_state == UNIT_STUB); - r = unit_add_exec_dependencies(u, &s->exec_context); - if (r < 0) - return r; + /* Load a .swap file */ + if (SWAP(u)->from_proc_swaps) + r = unit_load_fragment_and_dropin_optional(u); + else + r = unit_load_fragment_and_dropin(u); + if (r < 0) + return r; - r = unit_set_default_slice(u); - if (r < 0) - return r; + if (u->load_state == UNIT_LOADED) { - r = swap_add_default_dependencies(s); + r = swap_add_extras(s); if (r < 0) return r; + } return swap_verify(s); |