Messages in this thread Patch in this message | | | From | Wanpeng Li <> | Subject | [PATCH] mm/memcg: return -EBUSY when oom-kill-disable modified and memcg use_hierarchy, has children | Date | Thu, 5 Jul 2012 18:55:08 +0800 |
| |
From: Wanpeng Li <liwp@linux.vnet.ibm.com>
When oom-kill-disable modified by the user and current memcg use_hierarchy, the change can occur, provided the current memcg has no children. If it has children, return -EBUSY is enough.
Signed-off-by: Wanpeng Li <liwp.linux@gmail.com> --- mm/memcontrol.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 63e36e7..4b64fe0 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4521,11 +4521,14 @@ static int mem_cgroup_oom_control_write(struct cgroup *cgrp, cgroup_lock(); /* oom-kill-disable is a flag for subhierarchy. */ - if ((parent->use_hierarchy) || - (memcg->use_hierarchy && !list_empty(&cgrp->children))) { + if (parent->use_hierarchy) { cgroup_unlock(); return -EINVAL; + } else if (memcg->use_hierarchy && !list_empty(&cgrp->children)) { + cgroup_unlock(); + return -EBUSY; } + memcg->oom_kill_disable = val; if (!val) memcg_oom_recover(memcg); -- 1.7.5.4
| |