summaryrefslogtreecommitdiff
path: root/include/linux/ptrace.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-06-17 18:50:40 +0400
committerOleg Nesterov <oleg@redhat.com>2011-06-22 21:26:29 +0400
commit06d984737bac0545fe20bb5447ee488b95adb531 (patch)
treeb8d89d21a53c28a025dd42598bc3406e25db5ba8 /include/linux/ptrace.h
parent4b9d33e6d83cc05a8005a8f9a8b9677fa0f53626 (diff)
downloadlinux-06d984737bac0545fe20bb5447ee488b95adb531.tar.xz
ptrace: s/tracehook_tracer_task()/ptrace_parent()/
tracehook.h is on the way out. Rename tracehook_tracer_task() to ptrace_parent() and move it from tracehook.h to ptrace.h. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Christoph Hellwig <hch@infradead.org> Cc: John Johansen <john.johansen@canonical.com> Cc: Stephen Smalley <sds@tycho.nsa.gov> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Diffstat (limited to 'include/linux/ptrace.h')
-rw-r--r--include/linux/ptrace.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index b546fd6c3506..bb157bdd0c55 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -151,6 +151,24 @@ int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
unsigned long data);
/**
+ * ptrace_parent - return the task that is tracing the given task
+ * @task: task to consider
+ *
+ * Returns %NULL if no one is tracing @task, or the &struct task_struct
+ * pointer to its tracer.
+ *
+ * Must called under rcu_read_lock(). The pointer returned might be kept
+ * live only by RCU. During exec, this may be called with task_lock() held
+ * on @task, still held from when check_unsafe_exec() was called.
+ */
+static inline struct task_struct *ptrace_parent(struct task_struct *task)
+{
+ if (unlikely(task->ptrace))
+ return rcu_dereference(task->parent);
+ return NULL;
+}
+
+/**
* ptrace_event_enabled - test whether a ptrace event is enabled
* @task: ptracee of interest
* @event: %PTRACE_EVENT_* to test