Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

include/linux/sched.h: don't use task->pid/tgid in same_thread_group/has_group_leader_pid

task_struct->pid/tgid should go away.

1. Change same_thread_group() to use task->signal for comparison.

2. Change has_group_leader_pid(task) to compare task_pid(task) with
signal->leader_pid.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Sergey Dyasly <dserrg@gmail.com>
Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Oleg Nesterov and committed by
Linus Torvalds
e1403b8e 28e8be31

+4 -4
+4 -4
include/linux/sched.h
··· 2169 2169 * all we care about is that we have a task with the appropriate 2170 2170 * pid, we don't actually care if we have the right task. 2171 2171 */ 2172 - static inline int has_group_leader_pid(struct task_struct *p) 2172 + static inline bool has_group_leader_pid(struct task_struct *p) 2173 2173 { 2174 - return p->pid == p->tgid; 2174 + return task_pid(p) == p->signal->leader_pid; 2175 2175 } 2176 2176 2177 2177 static inline 2178 - int same_thread_group(struct task_struct *p1, struct task_struct *p2) 2178 + bool same_thread_group(struct task_struct *p1, struct task_struct *p2) 2179 2179 { 2180 - return p1->tgid == p2->tgid; 2180 + return p1->signal == p2->signal; 2181 2181 } 2182 2182 2183 2183 static inline struct task_struct *next_thread(const struct task_struct *p)