Commit 972c4ea5 authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Linus Torvalds
Browse files

[PATCH] select_bad_process(): cleanup 'releasing' check



No logic changes, but imho easier to read.

Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
Acked-by: default avatarNick Piggin <npiggin@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 28324d1d
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -204,7 +204,6 @@ static struct task_struct *select_bad_process(unsigned long *ppoints)
	do_posix_clock_monotonic_gettime(&uptime);
	do_each_thread(g, p) {
		unsigned long points;
		int releasing;

		/*
		 * skip kernel threads and tasks which have already released
@@ -226,16 +225,15 @@ static struct task_struct *select_bad_process(unsigned long *ppoints)
		 * the process of exiting and releasing its resources.
		 * Otherwise we could get an OOM deadlock.
		 */
		releasing = test_tsk_thread_flag(p, TIF_MEMDIE) ||
						p->flags & PF_EXITING;
		if (releasing) {
			if (p->flags & PF_EXITING && p == current) {
		if ((p->flags & PF_EXITING) && p == current) {
			chosen = p;
			*ppoints = ULONG_MAX;
			break;
		}
		if ((p->flags & PF_EXITING) ||
				test_tsk_thread_flag(p, TIF_MEMDIE))
			return ERR_PTR(-1UL);
		}

		if (p->oomkilladj == OOM_DISABLE)
			continue;

@@ -245,6 +243,7 @@ static struct task_struct *select_bad_process(unsigned long *ppoints)
			*ppoints = points;
		}
	} while_each_thread(g, p);

	return chosen;
}