Commit 38531201 authored by Tetsuo Handa's avatar Tetsuo Handa Committed by Linus Torvalds

mm, oom: enforce exit_oom_victim on current task

There are no users of exit_oom_victim on !current task anymore so enforce
the API to always work on the current.

Link: http://lkml.kernel.org/r/1472119394-11342-8-git-send-email-mhocko@kernel.orgSigned-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Vladimir Davydov <vdavydov@parallels.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7d2e7a22
...@@ -69,7 +69,7 @@ extern unsigned long oom_badness(struct task_struct *p, ...@@ -69,7 +69,7 @@ extern unsigned long oom_badness(struct task_struct *p,
extern bool out_of_memory(struct oom_control *oc); extern bool out_of_memory(struct oom_control *oc);
extern void exit_oom_victim(struct task_struct *tsk); extern void exit_oom_victim(void);
extern int register_oom_notifier(struct notifier_block *nb); extern int register_oom_notifier(struct notifier_block *nb);
extern int unregister_oom_notifier(struct notifier_block *nb); extern int unregister_oom_notifier(struct notifier_block *nb);
......
...@@ -511,7 +511,7 @@ static void exit_mm(struct task_struct *tsk) ...@@ -511,7 +511,7 @@ static void exit_mm(struct task_struct *tsk)
mm_update_next_owner(mm); mm_update_next_owner(mm);
mmput(mm); mmput(mm);
if (test_thread_flag(TIF_MEMDIE)) if (test_thread_flag(TIF_MEMDIE))
exit_oom_victim(tsk); exit_oom_victim();
} }
static struct task_struct *find_alive_thread(struct task_struct *p) static struct task_struct *find_alive_thread(struct task_struct *p)
......
...@@ -662,10 +662,9 @@ static void mark_oom_victim(struct task_struct *tsk) ...@@ -662,10 +662,9 @@ static void mark_oom_victim(struct task_struct *tsk)
/** /**
* exit_oom_victim - note the exit of an OOM victim * exit_oom_victim - note the exit of an OOM victim
*/ */
void exit_oom_victim(struct task_struct *tsk) void exit_oom_victim(void)
{ {
if (!test_and_clear_tsk_thread_flag(tsk, TIF_MEMDIE)) clear_thread_flag(TIF_MEMDIE);
return;
if (!atomic_dec_return(&oom_victims)) if (!atomic_dec_return(&oom_victims))
wake_up_all(&oom_victims_wait); wake_up_all(&oom_victims_wait);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment