From: Wanpeng Li <liwp@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxx> --- 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>