diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-01-18 15:40:21 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-01-18 15:40:21 +0100 |
commit | 8d53b4534a5923721b5f1e9dd7e8f4a903d02d51 (patch) | |
tree | 7b0a03a93fc3aa706676713e8062bdbb6dc4ad2d /src/cgroup.c | |
parent | 62f21ec91ad8e7e24079962f4df066b0094fe68d (diff) |
exec: introduce ControlGroupPersistant= to make cgroups persistant
Diffstat (limited to 'src/cgroup.c')
-rw-r--r-- | src/cgroup.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/cgroup.c b/src/cgroup.c index e141b4153d..9aff02e7bc 100644 --- a/src/cgroup.c +++ b/src/cgroup.c @@ -60,7 +60,7 @@ int cgroup_bonding_realize_list(CGroupBonding *first) { return 0; } -void cgroup_bonding_free(CGroupBonding *b, bool remove_or_trim) { +void cgroup_bonding_free(CGroupBonding *b, bool trim) { assert(b); if (b->unit) { @@ -79,13 +79,8 @@ void cgroup_bonding_free(CGroupBonding *b, bool remove_or_trim) { } } - if (b->realized && b->ours && remove_or_trim) { - - if (cgroup_bonding_is_empty(b) > 0) - cg_delete(b->controller, b->path); - else - cg_trim(b->controller, b->path, false); - } + if (b->realized && b->ours && trim) + cg_trim(b->controller, b->path, false); free(b->controller); free(b->path); @@ -159,21 +154,21 @@ int cgroup_bonding_set_group_access_list(CGroupBonding *first, mode_t mode, uid_ return 0; } -int cgroup_bonding_set_task_access(CGroupBonding *b, mode_t mode, uid_t uid, gid_t gid) { +int cgroup_bonding_set_task_access(CGroupBonding *b, mode_t mode, uid_t uid, gid_t gid, int sticky) { assert(b); if (!b->realized) return -EINVAL; - return cg_set_task_access(b->controller, b->path, mode, uid, gid); + return cg_set_task_access(b->controller, b->path, mode, uid, gid, sticky); } -int cgroup_bonding_set_task_access_list(CGroupBonding *first, mode_t mode, uid_t uid, gid_t gid) { +int cgroup_bonding_set_task_access_list(CGroupBonding *first, mode_t mode, uid_t uid, gid_t gid, int sticky) { CGroupBonding *b; int r; LIST_FOREACH(by_unit, b, first) { - r = cgroup_bonding_set_task_access(b, mode, uid, gid); + r = cgroup_bonding_set_task_access(b, mode, uid, gid, sticky); if (r < 0) return r; } |