mirror of
https://github.com/systemd/systemd.git
synced 2025-08-24 09:49:49 +03:00
unit: slice dependencies should not be subject to DefaultDependencies
This commit is contained in:
Notes:
Lennart Poettering
2014-02-17 15:50:40 +01:00
Backport: bugfix
@ -947,7 +947,7 @@ int unit_add_default_target_dependency(Unit *u, Unit *target) {
|
|||||||
return unit_add_dependency(target, UNIT_AFTER, u, true);
|
return unit_add_dependency(target, UNIT_AFTER, u, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int unit_add_default_dependencies(Unit *u) {
|
static int unit_add_target_dependencies(Unit *u) {
|
||||||
|
|
||||||
static const UnitDependency deps[] = {
|
static const UnitDependency deps[] = {
|
||||||
UNIT_REQUIRED_BY,
|
UNIT_REQUIRED_BY,
|
||||||
@ -958,8 +958,8 @@ static int unit_add_default_dependencies(Unit *u) {
|
|||||||
|
|
||||||
Unit *target;
|
Unit *target;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
int r;
|
|
||||||
unsigned k;
|
unsigned k;
|
||||||
|
int r;
|
||||||
|
|
||||||
assert(u);
|
assert(u);
|
||||||
|
|
||||||
@ -970,20 +970,22 @@ static int unit_add_default_dependencies(Unit *u) {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (u->default_dependencies && unit_get_cgroup_context(u)) {
|
return r;
|
||||||
if (UNIT_ISSET(u->slice))
|
|
||||||
r = unit_add_two_dependencies(u, UNIT_AFTER, UNIT_WANTS, UNIT_DEREF(u->slice), true);
|
|
||||||
else
|
|
||||||
r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_WANTS, SPECIAL_ROOT_SLICE, NULL, true);
|
|
||||||
|
|
||||||
if (r < 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int unit_add_mount_links(Unit *u) {
|
static int unit_add_slice_dependencies(Unit *u) {
|
||||||
|
assert(u);
|
||||||
|
|
||||||
|
if (!unit_get_cgroup_context(u))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (UNIT_ISSET(u->slice))
|
||||||
|
return unit_add_two_dependencies(u, UNIT_AFTER, UNIT_WANTS, UNIT_DEREF(u->slice), true);
|
||||||
|
|
||||||
|
return unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_WANTS, SPECIAL_ROOT_SLICE, NULL, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int unit_add_mount_dependencies(Unit *u) {
|
||||||
char **i;
|
char **i;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
@ -1050,13 +1052,15 @@ int unit_load(Unit *u) {
|
|||||||
|
|
||||||
if (u->load_state == UNIT_LOADED) {
|
if (u->load_state == UNIT_LOADED) {
|
||||||
|
|
||||||
if (u->default_dependencies) {
|
r = unit_add_target_dependencies(u);
|
||||||
r = unit_add_default_dependencies(u);
|
if (r < 0)
|
||||||
if (r < 0)
|
goto fail;
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = unit_add_mount_links(u);
|
r = unit_add_slice_dependencies(u);
|
||||||
|
if (r < 0)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
r = unit_add_mount_dependencies(u);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user