diff options
author | Mike Rapoport <rppt@linux.vnet.ibm.com> | 2018-02-07 00:40:17 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-02-07 03:32:46 +0100 |
commit | 2ee0826085d1c0281cb60c1f4bc3e0c27efeedc3 (patch) | |
tree | bb2dc8915be7e4f0fea7438edf380d84b896f80a /kernel/pid.c | |
parent | drivers/rapidio/devices/tsi721_dma.c: adjust six checks for null pointers (diff) | |
download | linux-2ee0826085d1c0281cb60c1f4bc3e0c27efeedc3.tar.xz linux-2ee0826085d1c0281cb60c1f4bc3e0c27efeedc3.zip |
pids: introduce find_get_task_by_vpid() helper
There are several functions that do find_task_by_vpid() followed by
get_task_struct(). We can use a helper function instead.
Link: http://lkml.kernel.org/r/1509602027-11337-1-git-send-email-rppt@linux.vnet.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/pid.c')
-rw-r--r-- | kernel/pid.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/pid.c b/kernel/pid.c index 5d30c87e3c42..ed6c343fe50d 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -343,6 +343,19 @@ struct task_struct *find_task_by_vpid(pid_t vnr) return find_task_by_pid_ns(vnr, task_active_pid_ns(current)); } +struct task_struct *find_get_task_by_vpid(pid_t nr) +{ + struct task_struct *task; + + rcu_read_lock(); + task = find_task_by_vpid(nr); + if (task) + get_task_struct(task); + rcu_read_unlock(); + + return task; +} + struct pid *get_task_pid(struct task_struct *task, enum pid_type type) { struct pid *pid; |