From c6f380562018906c1be8b3ac15eeb287c3059d92 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Sat, 25 Mar 2006 03:07:48 -0800 Subject: [PATCH] --- yaml --- r: 23575 b: refs/heads/master c: 05eeae208d08a05a6980cf2ff61f02843c0955fd h: refs/heads/master i: 23573: 7147b44123a18210f9bb39b615ae6409bd214042 23571: cd412cc2ce8f90ccfa085dc9af3aee2d618db9d7 23567: 333fdf668603bf91f9ef7d86efbcc23f36e217c0 v: v3 --- [refs] | 2 +- trunk/kernel/kthread.c | 2 ++ trunk/mm/vmscan.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index b44b7e7d33bb..1a0af63fdf85 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c1f5a1944657ba6abe375e3bb2a3238a46849f70 +refs/heads/master: 05eeae208d08a05a6980cf2ff61f02843c0955fd diff --git a/trunk/kernel/kthread.c b/trunk/kernel/kthread.c index 6a5373868a98..c5f3c6613b6d 100644 --- a/trunk/kernel/kthread.c +++ b/trunk/kernel/kthread.c @@ -115,7 +115,9 @@ static void keventd_create_kthread(void *_create) create->result = ERR_PTR(pid); } else { wait_for_completion(&create->started); + read_lock(&tasklist_lock); create->result = find_task_by_pid(pid); + read_unlock(&tasklist_lock); } complete(&create->done); } diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index fd572bbdc9f5..78865c849f8f 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -1356,7 +1356,9 @@ static int __init kswapd_init(void) pid = kernel_thread(kswapd, pgdat, CLONE_KERNEL); BUG_ON(pid < 0); + read_lock(&tasklist_lock); pgdat->kswapd = find_task_by_pid(pid); + read_unlock(&tasklist_lock); } total_memory = nr_free_pagecache_pages(); hotcpu_notifier(cpu_callback, 0);