diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-08-13 02:08:34 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-08-13 02:08:34 +0200 |
commit | 4455bcd0e646eda1a952671734045bf1b2e9b69f (patch) | |
tree | dc958ab64baaa018408cba6a5a123d68516dabe0 /src/cgroup.c | |
parent | 598b557bf0dea33db2c13d383382efbd847ed5f0 (diff) |
cgroup: try harder to find a unit a PID belongs to by traversing through parent cgroups
Diffstat (limited to 'src/cgroup.c')
-rw-r--r-- | src/cgroup.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cgroup.c b/src/cgroup.c index 23ba5d86a9..fff00d017f 100644 --- a/src/cgroup.c +++ b/src/cgroup.c @@ -335,6 +335,21 @@ Unit* cgroup_unit_by_pid(Manager *m, pid_t pid) { return NULL; l = hashmap_get(m->cgroup_bondings, group); + + if (!l) { + char *slash; + + while ((slash = strrchr(group, '/'))) { + if (slash == group) + break; + + *slash = 0; + + if ((l = hashmap_get(m->cgroup_bondings, group))) + break; + } + } + free(group); LIST_FOREACH(by_path, b, l) { |