diff options
author | Tejun Heo <tj@kernel.org> | 2011-06-17 10:50:40 -0400 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2011-06-22 13:26:29 -0400 |
commit | 06d984737bac0545fe20bb5447ee488b95adb531 (patch) | |
tree | b8d89d21a53c28a025dd42598bc3406e25db5ba8 | |
parent | 4b9d33e6d83cc05a8005a8f9a8b9677fa0f53626 (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.c | 2 | ||||
-rw-r--r-- | fs/proc/base.c | 2 | ||||
-rw-r--r-- | include/linux/ptrace.h | 18 | ||||
-rw-r--r-- | include/linux/tracehook.h | 18 | ||||
-rw-r--r-- | security/apparmor/domain.c | 2 | ||||
-rw-r--r-- | security/selinux/hooks.c | 4 |
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 | */ | ||
164 | static 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 | */ | ||
143 | static 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); |