diff options
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 8e6b6f4fb27..70d76191afb 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -501,7 +501,6 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) | |||
501 | mm->cached_hole_size = ~0UL; | 501 | mm->cached_hole_size = ~0UL; |
502 | mm_init_aio(mm); | 502 | mm_init_aio(mm); |
503 | mm_init_owner(mm, p); | 503 | mm_init_owner(mm, p); |
504 | atomic_set(&mm->oom_disable_count, 0); | ||
505 | 504 | ||
506 | if (likely(!mm_alloc_pgd(mm))) { | 505 | if (likely(!mm_alloc_pgd(mm))) { |
507 | mm->def_flags = 0; | 506 | mm->def_flags = 0; |
@@ -816,8 +815,6 @@ good_mm: | |||
816 | /* Initializing for Swap token stuff */ | 815 | /* Initializing for Swap token stuff */ |
817 | mm->token_priority = 0; | 816 | mm->token_priority = 0; |
818 | mm->last_interval = 0; | 817 | mm->last_interval = 0; |
819 | if (tsk->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) | ||
820 | atomic_inc(&mm->oom_disable_count); | ||
821 | 818 | ||
822 | tsk->mm = mm; | 819 | tsk->mm = mm; |
823 | tsk->active_mm = mm; | 820 | tsk->active_mm = mm; |
@@ -1391,13 +1388,8 @@ bad_fork_cleanup_io: | |||
1391 | bad_fork_cleanup_namespaces: | 1388 | bad_fork_cleanup_namespaces: |
1392 | exit_task_namespaces(p); | 1389 | exit_task_namespaces(p); |
1393 | bad_fork_cleanup_mm: | 1390 | bad_fork_cleanup_mm: |
1394 | if (p->mm) { | 1391 | if (p->mm) |
1395 | task_lock(p); | ||
1396 | if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) | ||
1397 | atomic_dec(&p->mm->oom_disable_count); | ||
1398 | task_unlock(p); | ||
1399 | mmput(p->mm); | 1392 | mmput(p->mm); |
1400 | } | ||
1401 | bad_fork_cleanup_signal: | 1393 | bad_fork_cleanup_signal: |
1402 | if (!(clone_flags & CLONE_THREAD)) | 1394 | if (!(clone_flags & CLONE_THREAD)) |
1403 | free_signal_struct(p->signal); | 1395 | free_signal_struct(p->signal); |