aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-06-17 10:50:40 -0400
committerOleg Nesterov <oleg@redhat.com>2011-06-22 13:26:29 -0400
commit06d984737bac0545fe20bb5447ee488b95adb531 (patch)
treeb8d89d21a53c28a025dd42598bc3406e25db5ba8
parent4b9d33e6d83cc05a8005a8f9a8b9677fa0f53626 (diff)
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>
-rw-r--r--fs/proc/array.c2
-rw-r--r--fs/proc/base.c2
-rw-r--r--include/linux/ptrace.h18
-rw-r--r--include/linux/tracehook.h18
-rw-r--r--security/apparmor/domain.c2
-rw-r--r--security/selinux/hooks.c4
6 files changed, 23 insertions, 23 deletions
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 9b45ee84fbcc..3a1dafd228d1 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -172,7 +172,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
172 task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0; 172 task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
173 tpid = 0; 173 tpid = 0;
174 if (pid_alive(p)) { 174 if (pid_alive(p)) {
175 struct task_struct *tracer = tracehook_tracer_task(p); 175 struct task_struct *tracer = ptrace_parent(p);
176 if (tracer) 176 if (tracer)
177 tpid = task_pid_nr_ns(tracer, ns); 177 tpid = task_pid_nr_ns(tracer, ns);
178 } 178 }
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 14def991d9dd..c883dad74b9a 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -216,7 +216,7 @@ static struct mm_struct *__check_mem_permission(struct task_struct *task)
216 if (task_is_stopped_or_traced(task)) { 216 if (task_is_stopped_or_traced(task)) {
217 int match; 217 int match;
218 rcu_read_lock(); 218 rcu_read_lock();
219 match = (tracehook_tracer_task(task) == current); 219 match = (ptrace_parent(task) == current);
220 rcu_read_unlock(); 220 rcu_read_unlock();
221 if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) 221 if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
222 return mm; 222 return mm;
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,
151 unsigned long data); 151 unsigned long data);
152 152
153/** 153/**
154 * ptrace_parent - return the task that is tracing the given task
155 * @task: task to consider
156 *
157 * Returns %NULL if no one is tracing @task, or the &struct task_struct
158 * pointer to its tracer.
159 *
160 * Must called under rcu_read_lock(). The pointer returned might be kept
161 * live only by RCU. During exec, this may be called with task_lock() held
162 * on @task, still held from when check_unsafe_exec() was called.
163 */
164static inline struct task_struct *ptrace_parent(struct task_struct *task)
165{
166 if (unlikely(task->ptrace))
167 return rcu_dereference(task->parent);
168 return NULL;
169}
170
171/**
154 * ptrace_event_enabled - test whether a ptrace event is enabled 172 * ptrace_event_enabled - test whether a ptrace event is enabled
155 * @task: ptracee of interest 173 * @task: ptracee of interest
156 * @event: %PTRACE_EVENT_* to test 174 * @event: %PTRACE_EVENT_* to test
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
index bcc4ca762aee..7a1bd12aeffa 100644
--- a/include/linux/tracehook.h
+++ b/include/linux/tracehook.h
@@ -130,24 +130,6 @@ static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step)
130} 130}
131 131
132/** 132/**
133 * tracehook_tracer_task - return the task that is tracing the given task
134 * @tsk: task to consider
135 *
136 * Returns NULL if no one is tracing @task, or the &struct task_struct
137 * pointer to its tracer.
138 *
139 * Must called under rcu_read_lock(). The pointer returned might be kept
140 * live only by RCU. During exec, this may be called with task_lock()
141 * held on @task, still held from when tracehook_unsafe_exec() was called.
142 */
143static inline struct task_struct *tracehook_tracer_task(struct task_struct *tsk)
144{
145 if (tsk->ptrace & PT_PTRACED)
146 return rcu_dereference(tsk->parent);
147 return NULL;
148}
149
150/**
151 * tracehook_signal_handler - signal handler setup is complete 133 * tracehook_signal_handler - signal handler setup is complete
152 * @sig: number of signal being delivered 134 * @sig: number of signal being delivered
153 * @info: siginfo_t of signal being delivered 135 * @info: siginfo_t of signal being delivered
diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
index c825c6e0b636..7312bf9f7afc 100644
--- a/security/apparmor/domain.c
+++ b/security/apparmor/domain.c
@@ -67,7 +67,7 @@ static int may_change_ptraced_domain(struct task_struct *task,
67 int error = 0; 67 int error = 0;
68 68
69 rcu_read_lock(); 69 rcu_read_lock();
70 tracer = tracehook_tracer_task(task); 70 tracer = ptrace_parent(task);
71 if (tracer) { 71 if (tracer) {
72 /* released below */ 72 /* released below */
73 cred = get_task_cred(tracer); 73 cred = get_task_cred(tracer);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index a0d38459d650..fc07d18ed6fc 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -2048,7 +2048,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
2048 u32 ptsid = 0; 2048 u32 ptsid = 0;
2049 2049
2050 rcu_read_lock(); 2050 rcu_read_lock();
2051 tracer = tracehook_tracer_task(current); 2051 tracer = ptrace_parent(current);
2052 if (likely(tracer != NULL)) { 2052 if (likely(tracer != NULL)) {
2053 sec = __task_cred(tracer)->security; 2053 sec = __task_cred(tracer)->security;
2054 ptsid = sec->sid; 2054 ptsid = sec->sid;
@@ -5314,7 +5314,7 @@ static int selinux_setprocattr(struct task_struct *p,
5314 Otherwise, leave SID unchanged and fail. */ 5314 Otherwise, leave SID unchanged and fail. */
5315 ptsid = 0; 5315 ptsid = 0;
5316 task_lock(p); 5316 task_lock(p);
5317 tracer = tracehook_tracer_task(p); 5317 tracer = ptrace_parent(p);
5318 if (tracer) 5318 if (tracer)
5319 ptsid = task_sid(tracer); 5319 ptsid = task_sid(tracer);
5320 task_unlock(p); 5320 task_unlock(p);