diff options
author | Oleg Nesterov <oleg@redhat.com> | 2009-06-17 16:27:34 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 13:03:51 -0700 |
commit | 8053bdd5ce15dcf043d41a4dd6cac4a5567effdc (patch) | |
tree | b139a0763d46143fbe5e36811b03c1987ef23b7a /kernel/ptrace.c | |
parent | 4b105cbbaf7c06e01c27391957dc3c446328d087 (diff) | |
download | lwn-8053bdd5ce15dcf043d41a4dd6cac4a5567effdc.tar.gz lwn-8053bdd5ce15dcf043d41a4dd6cac4a5567effdc.zip |
ptrace_get_task_struct: s/tasklist/rcu/, make it static
- Use rcu_read_lock() instead of tasklist_lock to find/get the task
in ptrace_get_task_struct().
- Make it static, it has no callers outside of ptrace.c.
- The comment doesn't match the reality, this helper does not do
any checks. Beacuse it is really trivial and static I removed the
whole comment.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r-- | kernel/ptrace.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 38fdfea1a15a..a64fe75a48ba 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -581,26 +581,16 @@ int ptrace_request(struct task_struct *child, long request, return ret; } -/** - * ptrace_get_task_struct -- grab a task struct reference for ptrace - * @pid: process id to grab a task_struct reference of - * - * This function is a helper for ptrace implementations. It checks - * permissions and then grabs a task struct for use of the actual - * ptrace implementation. - * - * Returns the task_struct for @pid or an ERR_PTR() on failure. - */ -struct task_struct *ptrace_get_task_struct(pid_t pid) +static struct task_struct *ptrace_get_task_struct(pid_t pid) { struct task_struct *child; - read_lock(&tasklist_lock); + rcu_read_lock(); child = find_task_by_vpid(pid); if (child) get_task_struct(child); + rcu_read_unlock(); - read_unlock(&tasklist_lock); if (!child) return ERR_PTR(-ESRCH); return child; |