|
@@ -1370,7 +1370,7 @@ static void memcg_wakeup_oom(struct mem_cgroup *mem)
|
|
|
|
|
|
static void memcg_oom_recover(struct mem_cgroup *mem)
|
|
static void memcg_oom_recover(struct mem_cgroup *mem)
|
|
{
|
|
{
|
|
- if (mem->oom_kill_disable && atomic_read(&mem->oom_lock))
|
|
|
|
|
|
+ if (atomic_read(&mem->oom_lock))
|
|
memcg_wakeup_oom(mem);
|
|
memcg_wakeup_oom(mem);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3781,6 +3781,8 @@ static int mem_cgroup_oom_control_write(struct cgroup *cgrp,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
mem->oom_kill_disable = val;
|
|
mem->oom_kill_disable = val;
|
|
|
|
+ if (!val)
|
|
|
|
+ memcg_oom_recover(mem);
|
|
cgroup_unlock();
|
|
cgroup_unlock();
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|