X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fslice.c;h=057feefa0fd67889d75f74e3bec3e47da642fe99;hb=5261ba901845c084de5a8fd06500ed09bfb0bd80;hp=557f8290883c1a794511cace3509e4f07ed388ce;hpb=8e2af478402414f060bbc16e1b4bbe7de1779c13;p=elogind.git diff --git a/src/core/slice.c b/src/core/slice.c index 557f82908..057feefa0 100644 --- a/src/core/slice.c +++ b/src/core/slice.c @@ -36,23 +36,6 @@ static const UnitActiveState state_translation_table[_SLICE_STATE_MAX] = { [SLICE_ACTIVE] = UNIT_ACTIVE }; -static void slice_init(Unit *u) { - Slice *s = SLICE(u); - - assert(u); - assert(u->load_state == UNIT_STUB); - - cgroup_context_init(&s->cgroup_context); -} - -static void slice_done(Unit *u) { - Slice *s = SLICE(u); - - assert(u); - - cgroup_context_done(&s->cgroup_context); -} - static void slice_set_state(Slice *t, SliceState state) { SliceState old_state; assert(t); @@ -103,7 +86,10 @@ static int slice_add_default_dependencies(Slice *s) { assert(s); /* Make sure slices are unloaded on shutdown */ - r = unit_add_dependency_by_name(UNIT(s), UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true); + r = unit_add_two_dependencies_by_name( + UNIT(s), + UNIT_BEFORE, UNIT_CONFLICTS, + SPECIAL_SHUTDOWN_TARGET, NULL, true); if (r < 0) return r; @@ -149,6 +135,10 @@ static int slice_load(Unit *u) { /* This is a new unit? Then let's add in some extras */ if (u->load_state == UNIT_LOADED) { + r = unit_patch_contexts(u); + if (r < 0) + return r; + r = slice_add_parent_slice(s); if (r < 0) return r; @@ -213,7 +203,7 @@ static int slice_stop(Unit *u) { return 0; } -static int slice_kill(Unit *u, KillWho who, int signo, DBusError *error) { +static int slice_kill(Unit *u, KillWho who, int signo, sd_bus_error *error) { return unit_kill_common(u, who, signo, -1, -1, error); } @@ -272,20 +262,18 @@ DEFINE_STRING_TABLE_LOOKUP(slice_state, SliceState); const UnitVTable slice_vtable = { .object_size = sizeof(Slice), + .cgroup_context_offset = offsetof(Slice, cgroup_context), + .sections = "Unit\0" "Slice\0" "Install\0", - .private_section = "Slice", - .cgroup_context_offset = offsetof(Slice, cgroup_context), .no_alias = true, .no_instances = true, - .init = slice_init, .load = slice_load, - .done = slice_done, .coldplug = slice_coldplug, @@ -303,7 +291,7 @@ const UnitVTable slice_vtable = { .sub_state_to_string = slice_sub_state_to_string, .bus_interface = "org.freedesktop.systemd1.Slice", - .bus_message_handler = bus_slice_message_handler, + .bus_vtable = bus_slice_vtable, .bus_set_property = bus_slice_set_property, .bus_commit_properties = bus_slice_commit_properties,