summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>2016-06-24 17:48:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-06-24 20:23:52 -0400
commit9df10fb7b80bc2f540956ba01b5e7ee1012001a5 (patch)
treea64cab11f81e017ca0b27d785e6922d008231403 /mm
parent491a1c65ae498dea0e39b24a46e528a78a8532ed (diff)
oom_reaper: avoid pointless atomic_inc_not_zero usage.
Since commit 36324a990cf5 ("oom: clear TIF_MEMDIE after oom_reaper managed to unmap the address space") changed to use find_lock_task_mm() for finding a mm_struct to reap, it is guaranteed that mm->mm_users > 0 because find_lock_task_mm() returns a task_struct with ->mm != NULL. Therefore, we can safely use atomic_inc(). Link: http://lkml.kernel.org/r/1465024759-8074-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Acked-by: Michal Hocko <mhocko@suse.com> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/oom_kill.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index be67df3b6569..ddf74487f848 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -474,14 +474,8 @@ static bool __oom_reap_task(struct task_struct *tsk)
474 p = find_lock_task_mm(tsk); 474 p = find_lock_task_mm(tsk);
475 if (!p) 475 if (!p)
476 goto unlock_oom; 476 goto unlock_oom;
477
478 mm = p->mm; 477 mm = p->mm;
479 if (!atomic_inc_not_zero(&mm->mm_users)) { 478 atomic_inc(&mm->mm_users);
480 task_unlock(p);
481 mm = NULL;
482 goto unlock_oom;
483 }
484
485 task_unlock(p); 479 task_unlock(p);
486 480
487 if (!down_read_trylock(&mm->mmap_sem)) { 481 if (!down_read_trylock(&mm->mmap_sem)) {