From: Manfred Spraul Update and clarify the incorrect commentary around task_lock() 25-akpm/include/linux/sched.h | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) diff -puN include/linux/sched.h~tasklist_lock-docco-fix include/linux/sched.h --- 25/include/linux/sched.h~tasklist_lock-docco-fix Fri Apr 4 15:42:18 2003 +++ 25-akpm/include/linux/sched.h Fri Apr 4 15:42:18 2003 @@ -691,7 +691,11 @@ static inline int thread_group_empty(tas extern void unhash_process(struct task_struct *p); -/* Protects ->fs, ->files, ->mm, and synchronises with wait4(). Nests inside tasklist_lock */ +/* Protects ->fs, ->files, ->mm, and synchronises with wait4(). + * Nests both inside and outside of read_lock(&tasklist_lock). + * It must not be nested with write_lock_irq(&tasklist_lock), + * neither inside nor outside. + */ static inline void task_lock(struct task_struct *p) { spin_lock(&p->alloc_lock); _