This reverts commit f11cc0760b8397e0d230122606421b6a96e9f869. We do need this function for try_get_task_struct_on_cpu().
Signed-off-by: Chris Metcalf <cmetc...@mellanox.com> --- include/linux/sched/task.h | 2 ++ kernel/exit.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index 79a2a744648d..270ff76d43d9 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -96,6 +96,8 @@ static inline void put_task_struct(struct task_struct *t) } struct task_struct *task_rcu_dereference(struct task_struct **ptask); +struct task_struct *try_get_task_struct(struct task_struct **ptask); + #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT extern int arch_task_struct_size __read_mostly; diff --git a/kernel/exit.c b/kernel/exit.c index f2cd53e92147..e2a3e7458d0f 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -318,6 +318,19 @@ void rcuwait_wake_up(struct rcuwait *w) rcu_read_unlock(); } +struct task_struct *try_get_task_struct(struct task_struct **ptask) +{ + struct task_struct *task; + + rcu_read_lock(); + task = task_rcu_dereference(ptask); + if (task) + get_task_struct(task); + rcu_read_unlock(); + + return task; +} + /* * Determine if a process group is "orphaned", according to the POSIX * definition in 2.2.2.52. Orphaned process groups are not to be affected -- 2.1.2