mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-29 13:23:23 +01:00
do_task_stat: don't take rcu_read_lock()
lock_task_sighand() was changed, and do_task_stat() doesn't need rcu_read_lock any longer. sighand->siglock protects all "interesting" fields. Except: it doesn't protect ->tty->pgrp, but neither does rcu_read_lock(), this should be fixed. Signed-off-by: Oleg Nesterov <[email protected]> Cc: "Eric W. Biederman" <[email protected]> Cc: "Paul E. McKenney" <[email protected]> Cc: Roland McGrath <[email protected]> Cc: Alan Cox <[email protected]> Cc: Pavel Emelyanov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
1 parent
d6cf723a14
commit
06fffb1267
1 file changed
-2
@@ -425,7 +425,6 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
|
||||
cutime = cstime = utime = stime = cputime_zero;
|
||||
cgtime = gtime = cputime_zero;
|
||||
|
||||
rcu_read_lock();
|
||||
if (lock_task_sighand(task, &flags)) {
|
||||
struct signal_struct *sig = task->signal;
|
||||
|
||||
@@ -469,7 +468,6 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
|
||||
|
||||
unlock_task_sighand(task, &flags);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
|
||||
if (!whole || num_threads < 2)
|
||||
wchan = get_wchan(task);
|
||||
|
||||
Reference in new issue
Block a user