Lines Matching refs:task

166 static int get_task_root(struct task_struct *task, struct path *root)  in get_task_root()  argument
170 task_lock(task); in get_task_root()
171 if (task->fs) { in get_task_root()
172 get_fs_root(task->fs, root); in get_task_root()
175 task_unlock(task); in get_task_root()
181 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_cwd_link() local
184 if (task) { in proc_cwd_link()
185 task_lock(task); in proc_cwd_link()
186 if (task->fs) { in proc_cwd_link()
187 get_fs_pwd(task->fs, path); in proc_cwd_link()
190 task_unlock(task); in proc_cwd_link()
191 put_task_struct(task); in proc_cwd_link()
198 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_root_link() local
201 if (task) { in proc_root_link()
202 result = get_task_root(task, path); in proc_root_link()
203 put_task_struct(task); in proc_root_link()
362 struct pid *pid, struct task_struct *task) in proc_pid_wchan() argument
367 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_pid_wchan()
370 wchan = get_wchan(task); in proc_pid_wchan()
382 static int lock_trace(struct task_struct *task) in lock_trace() argument
384 int err = mutex_lock_killable(&task->signal->cred_guard_mutex); in lock_trace()
387 if (!ptrace_may_access(task, PTRACE_MODE_ATTACH_FSCREDS)) { in lock_trace()
388 mutex_unlock(&task->signal->cred_guard_mutex); in lock_trace()
394 static void unlock_trace(struct task_struct *task) in unlock_trace() argument
396 mutex_unlock(&task->signal->cred_guard_mutex); in unlock_trace()
404 struct pid *pid, struct task_struct *task) in proc_pid_stack() argument
434 err = lock_trace(task); in proc_pid_stack()
438 save_stack_trace_tsk(task, &trace); in proc_pid_stack()
443 unlock_trace(task); in proc_pid_stack()
456 struct pid *pid, struct task_struct *task) in proc_pid_schedstat() argument
462 (unsigned long long)task->se.sum_exec_runtime, in proc_pid_schedstat()
463 (unsigned long long)task->sched_info.run_delay, in proc_pid_schedstat()
464 task->sched_info.pcount); in proc_pid_schedstat()
475 struct task_struct *task = get_proc_task(inode); in lstats_show_proc() local
477 if (!task) in lstats_show_proc()
481 struct latency_record *lr = &task->latency_record[i]; in lstats_show_proc()
498 put_task_struct(task); in lstats_show_proc()
510 struct task_struct *task = get_proc_task(file_inode(file)); in lstats_write() local
512 if (!task) in lstats_write()
514 clear_all_latency_tracing(task); in lstats_write()
515 put_task_struct(task); in lstats_write()
531 struct pid *pid, struct task_struct *task) in proc_oom_score() argument
536 points = oom_badness(task, NULL, NULL, totalpages) * in proc_oom_score()
569 struct pid *pid, struct task_struct *task) in proc_pid_limits() argument
576 if (!lock_task_sighand(task, &flags)) in proc_pid_limits()
578 memcpy(rlim, task->signal->rlim, sizeof(struct rlimit) * RLIM_NLIMITS); in proc_pid_limits()
579 unlock_task_sighand(task, &flags); in proc_pid_limits()
611 struct pid *pid, struct task_struct *task) in proc_pid_syscall() argument
617 res = lock_trace(task); in proc_pid_syscall()
621 if (task_current_syscall(task, &nr, args, 6, &sp, &pc)) in proc_pid_syscall()
631 unlock_trace(task); in proc_pid_syscall()
644 struct task_struct *task; in proc_fd_access_allowed() local
650 task = get_proc_task(inode); in proc_fd_access_allowed()
651 if (task) { in proc_fd_access_allowed()
652 allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in proc_fd_access_allowed()
653 put_task_struct(task); in proc_fd_access_allowed()
680 struct task_struct *task, in has_pid_permissions() argument
687 return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in has_pid_permissions()
694 struct task_struct *task; in proc_pid_permission() local
697 task = get_proc_task(inode); in proc_pid_permission()
698 if (!task) in proc_pid_permission()
700 has_perms = has_pid_permissions(pid, task, HIDEPID_NO_ACCESS); in proc_pid_permission()
701 put_task_struct(task); in proc_pid_permission()
730 struct task_struct *task; in proc_single_show() local
733 task = get_pid_task(pid, PIDTYPE_PID); in proc_single_show()
734 if (!task) in proc_single_show()
737 ret = PROC_I(inode)->op.proc_show(m, ns, pid, task); in proc_single_show()
739 put_task_struct(task); in proc_single_show()
758 struct task_struct *task = get_proc_task(inode); in proc_mem_open() local
761 if (task) { in proc_mem_open()
762 mm = mm_access(task, mode | PTRACE_MODE_FSCREDS); in proc_mem_open()
763 put_task_struct(task); in proc_mem_open()
1001 struct task_struct *task = get_proc_task(file_inode(file)); in oom_adj_read() local
1006 if (!task) in oom_adj_read()
1008 if (task->signal->oom_score_adj == OOM_SCORE_ADJ_MAX) in oom_adj_read()
1011 oom_adj = (task->signal->oom_score_adj * -OOM_DISABLE) / in oom_adj_read()
1013 put_task_struct(task); in oom_adj_read()
1022 struct task_struct *task; in __set_oom_adj() local
1025 task = get_proc_task(file_inode(file)); in __set_oom_adj()
1026 if (!task) in __set_oom_adj()
1031 if (oom_adj < task->signal->oom_score_adj && in __set_oom_adj()
1041 current->comm, task_pid_nr(current), task_pid_nr(task), in __set_oom_adj()
1042 task_pid_nr(task)); in __set_oom_adj()
1044 if ((short)oom_adj < task->signal->oom_score_adj_min && in __set_oom_adj()
1056 if (!task->vfork_done) { in __set_oom_adj()
1057 struct task_struct *p = find_lock_task_mm(task); in __set_oom_adj()
1068 task->signal->oom_score_adj = oom_adj; in __set_oom_adj()
1070 task->signal->oom_score_adj_min = (short)oom_adj; in __set_oom_adj()
1071 trace_oom_score_adj_update(task); in __set_oom_adj()
1078 if (same_thread_group(task, p)) in __set_oom_adj()
1090 task_pid_nr(task), task->comm); in __set_oom_adj()
1102 put_task_struct(task); in __set_oom_adj()
1163 struct task_struct *task = get_proc_task(file_inode(file)); in oom_score_adj_read() local
1168 if (!task) in oom_score_adj_read()
1170 oom_score_adj = task->signal->oom_score_adj; in oom_score_adj_read()
1171 put_task_struct(task); in oom_score_adj_read()
1217 struct task_struct *task = get_proc_task(inode); in proc_loginuid_read() local
1221 if (!task) in proc_loginuid_read()
1225 audit_get_loginuid(task))); in proc_loginuid_read()
1226 put_task_struct(task); in proc_loginuid_read()
1279 struct task_struct *task = get_proc_task(inode); in proc_sessionid_read() local
1283 if (!task) in proc_sessionid_read()
1286 audit_get_sessionid(task)); in proc_sessionid_read()
1287 put_task_struct(task); in proc_sessionid_read()
1301 struct task_struct *task = get_proc_task(file_inode(file)); in proc_fault_inject_read() local
1306 if (!task) in proc_fault_inject_read()
1308 make_it_fail = task->make_it_fail; in proc_fault_inject_read()
1309 put_task_struct(task); in proc_fault_inject_read()
1319 struct task_struct *task; in proc_fault_inject_write() local
1337 task = get_proc_task(file_inode(file)); in proc_fault_inject_write()
1338 if (!task) in proc_fault_inject_write()
1340 task->make_it_fail = make_it_fail; in proc_fault_inject_write()
1341 put_task_struct(task); in proc_fault_inject_write()
1355 struct task_struct *task; in proc_fail_nth_write() local
1363 task = get_proc_task(file_inode(file)); in proc_fail_nth_write()
1364 if (!task) in proc_fail_nth_write()
1366 task->fail_nth = n; in proc_fail_nth_write()
1367 put_task_struct(task); in proc_fail_nth_write()
1375 struct task_struct *task; in proc_fail_nth_read() local
1379 task = get_proc_task(file_inode(file)); in proc_fail_nth_read()
1380 if (!task) in proc_fail_nth_read()
1382 len = snprintf(numbuf, sizeof(numbuf), "%u\n", task->fail_nth); in proc_fail_nth_read()
1383 put_task_struct(task); in proc_fail_nth_read()
1579 struct task_struct *task; in proc_exe_link() local
1582 task = get_proc_task(d_inode(dentry)); in proc_exe_link()
1583 if (!task) in proc_exe_link()
1585 exe_file = get_task_exe_file(task); in proc_exe_link()
1586 put_task_struct(task); in proc_exe_link()
1673 void task_dump_owner(struct task_struct *task, umode_t mode, in task_dump_owner() argument
1683 if (unlikely(task->flags & PF_KTHREAD)) { in task_dump_owner()
1691 cred = __task_cred(task); in task_dump_owner()
1706 task_lock(task); in task_dump_owner()
1707 mm = task->mm; in task_dump_owner()
1725 task_unlock(task); in task_dump_owner()
1732 struct task_struct *task, umode_t mode) in proc_pid_make_inode() argument
1753 ei->pid = get_task_pid(task, PIDTYPE_PID); in proc_pid_make_inode()
1757 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in proc_pid_make_inode()
1758 security_task_to_inode(task, inode); in proc_pid_make_inode()
1773 struct task_struct *task; in pid_getattr() local
1780 task = pid_task(proc_pid(inode), PIDTYPE_PID); in pid_getattr()
1781 if (task) { in pid_getattr()
1782 if (!has_pid_permissions(pid, task, HIDEPID_INVISIBLE)) { in pid_getattr()
1790 task_dump_owner(task, inode->i_mode, &stat->uid, &stat->gid); in pid_getattr()
1801 void pid_update_inode(struct task_struct *task, struct inode *inode) in pid_update_inode() argument
1803 task_dump_owner(task, inode->i_mode, &inode->i_uid, &inode->i_gid); in pid_update_inode()
1806 security_task_to_inode(task, inode); in pid_update_inode()
1817 struct task_struct *task; in pid_revalidate() local
1823 task = get_proc_task(inode); in pid_revalidate()
1825 if (task) { in pid_revalidate()
1826 pid_update_inode(task, inode); in pid_revalidate()
1827 put_task_struct(task); in pid_revalidate()
1869 instantiate_t instantiate, struct task_struct *task, const void *ptr) in proc_fill_cache() argument
1885 res = instantiate(child, task, ptr); in proc_fill_cache()
1950 struct task_struct *task; in map_files_d_revalidate() local
1958 task = get_proc_task(inode); in map_files_d_revalidate()
1959 if (!task) in map_files_d_revalidate()
1962 mm = mm_access(task, PTRACE_MODE_READ_FSCREDS); in map_files_d_revalidate()
1975 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in map_files_d_revalidate()
1977 security_task_to_inode(task, inode); in map_files_d_revalidate()
1982 put_task_struct(task); in map_files_d_revalidate()
1997 struct task_struct *task; in map_files_get_link() local
2002 task = get_proc_task(d_inode(dentry)); in map_files_get_link()
2003 if (!task) in map_files_get_link()
2006 mm = get_task_mm(task); in map_files_get_link()
2007 put_task_struct(task); in map_files_get_link()
2064 struct task_struct *task, const void *ptr) in proc_map_files_instantiate() argument
2070 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFLNK | in proc_map_files_instantiate()
2091 struct task_struct *task; in proc_map_files_lookup() local
2096 task = get_proc_task(dir); in proc_map_files_lookup()
2097 if (!task) in proc_map_files_lookup()
2101 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_lookup()
2108 mm = get_task_mm(task); in proc_map_files_lookup()
2118 result = proc_map_files_instantiate(dentry, task, in proc_map_files_lookup()
2125 put_task_struct(task); in proc_map_files_lookup()
2140 struct task_struct *task; in proc_map_files_readdir() local
2149 task = get_proc_task(file_inode(file)); in proc_map_files_readdir()
2150 if (!task) in proc_map_files_readdir()
2154 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_readdir()
2161 mm = get_task_mm(task); in proc_map_files_readdir()
2221 task, in proc_map_files_readdir()
2230 put_task_struct(task); in proc_map_files_readdir()
2244 struct task_struct *task; member
2254 tp->task = get_pid_task(tp->pid, PIDTYPE_PID); in timers_start()
2255 if (!tp->task) in timers_start()
2258 tp->sighand = lock_task_sighand(tp->task, &tp->flags); in timers_start()
2262 return seq_list_start(&tp->task->signal->posix_timers, *pos); in timers_start()
2268 return seq_list_next(v, &tp->task->signal->posix_timers, pos); in timers_next()
2276 unlock_task_sighand(tp->task, &tp->flags); in timers_stop()
2280 if (tp->task) { in timers_stop()
2281 put_task_struct(tp->task); in timers_stop()
2282 tp->task = NULL; in timers_stop()
2429 struct task_struct *task, const void *ptr) in proc_pident_instantiate() argument
2435 inode = proc_pid_make_inode(dentry->d_sb, task, p->mode); in proc_pident_instantiate()
2447 pid_update_inode(task, inode); in proc_pident_instantiate()
2457 struct task_struct *task = get_proc_task(dir); in proc_pident_lookup() local
2461 if (!task) in proc_pident_lookup()
2473 res = proc_pident_instantiate(dentry, task, p); in proc_pident_lookup()
2477 put_task_struct(task); in proc_pident_lookup()
2485 struct task_struct *task = get_proc_task(file_inode(file)); in proc_pident_readdir() local
2488 if (!task) in proc_pident_readdir()
2499 proc_pident_instantiate, task, p)) in proc_pident_readdir()
2504 put_task_struct(task); in proc_pident_readdir()
2515 struct task_struct *task = get_proc_task(inode); in proc_pid_attr_read() local
2517 if (!task) in proc_pid_attr_read()
2520 length = security_getprocattr(task, in proc_pid_attr_read()
2523 put_task_struct(task); in proc_pid_attr_read()
2534 struct task_struct *task; in proc_pid_attr_write() local
2539 task = pid_task(proc_pid(inode), PIDTYPE_PID); in proc_pid_attr_write()
2540 if (!task) { in proc_pid_attr_write()
2545 if (current != task) { in proc_pid_attr_write()
2623 struct task_struct *task = get_proc_task(file_inode(file)); in proc_coredump_filter_read() local
2629 if (!task) in proc_coredump_filter_read()
2633 mm = get_task_mm(task); in proc_coredump_filter_read()
2642 put_task_struct(task); in proc_coredump_filter_read()
2652 struct task_struct *task; in proc_coredump_filter_write() local
2664 task = get_proc_task(file_inode(file)); in proc_coredump_filter_write()
2665 if (!task) in proc_coredump_filter_write()
2668 mm = get_task_mm(task); in proc_coredump_filter_write()
2682 put_task_struct(task); in proc_coredump_filter_write()
2697 static int do_io_accounting(struct task_struct *task, struct seq_file *m, int whole) in do_io_accounting() argument
2699 struct task_io_accounting acct = task->ioac; in do_io_accounting()
2703 result = mutex_lock_killable(&task->signal->cred_guard_mutex); in do_io_accounting()
2707 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { in do_io_accounting()
2712 if (whole && lock_task_sighand(task, &flags)) { in do_io_accounting()
2713 struct task_struct *t = task; in do_io_accounting()
2715 task_io_accounting_add(&acct, &task->signal->ioac); in do_io_accounting()
2716 while_each_thread(task, t) in do_io_accounting()
2719 unlock_task_sighand(task, &flags); in do_io_accounting()
2739 mutex_unlock(&task->signal->cred_guard_mutex); in do_io_accounting()
2744 struct pid *pid, struct task_struct *task) in proc_tid_io_accounting() argument
2746 return do_io_accounting(task, m, 0); in proc_tid_io_accounting()
2750 struct pid *pid, struct task_struct *task) in proc_tgid_io_accounting() argument
2752 return do_io_accounting(task, m, 1); in proc_tgid_io_accounting()
2761 struct task_struct *task; in proc_id_map_open() local
2765 task = get_proc_task(inode); in proc_id_map_open()
2766 if (task) { in proc_id_map_open()
2768 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_id_map_open()
2770 put_task_struct(task); in proc_id_map_open()
2839 struct task_struct *task; in proc_setgroups_open() local
2843 task = get_proc_task(inode); in proc_setgroups_open()
2844 if (task) { in proc_setgroups_open()
2846 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_setgroups_open()
2848 put_task_struct(task); in proc_setgroups_open()
2889 struct pid *pid, struct task_struct *task) in proc_pid_personality() argument
2891 int err = lock_trace(task); in proc_pid_personality()
2893 seq_printf(m, "%08x\n", task->personality); in proc_pid_personality()
2894 unlock_trace(task); in proc_pid_personality()
2901 struct pid *pid, struct task_struct *task) in proc_pid_patch_state() argument
2903 seq_printf(m, "%d\n", task->patch_state); in proc_pid_patch_state()
3106 void proc_flush_task(struct task_struct *task) in proc_flush_task() argument
3112 pid = task_pid(task); in proc_flush_task()
3113 tgid = task_tgid(task); in proc_flush_task()
3123 struct task_struct *task, const void *ptr) in proc_pid_instantiate() argument
3127 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_pid_instantiate()
3136 pid_update_inode(task, inode); in proc_pid_instantiate()
3144 struct task_struct *task; in proc_pid_lookup() local
3155 task = find_task_by_pid_ns(tgid, ns); in proc_pid_lookup()
3156 if (task) in proc_pid_lookup()
3157 get_task_struct(task); in proc_pid_lookup()
3159 if (!task) in proc_pid_lookup()
3162 result = proc_pid_instantiate(dentry, task, NULL); in proc_pid_lookup()
3163 put_task_struct(task); in proc_pid_lookup()
3174 struct task_struct *task; member
3180 if (iter.task) in next_tgid()
3181 put_task_struct(iter.task); in next_tgid()
3184 iter.task = NULL; in next_tgid()
3188 iter.task = pid_task(pid, PIDTYPE_PID); in next_tgid()
3201 if (!iter.task || !has_group_leader_pid(iter.task)) { in next_tgid()
3205 get_task_struct(iter.task); in next_tgid()
3236 iter.task = NULL; in proc_pid_readdir()
3238 iter.task; in proc_pid_readdir()
3244 if (!has_pid_permissions(ns, iter.task, HIDEPID_INVISIBLE)) in proc_pid_readdir()
3250 proc_pid_instantiate, iter.task, NULL)) { in proc_pid_readdir()
3251 put_task_struct(iter.task); in proc_pid_readdir()
3274 struct task_struct *task; in proc_tid_comm_permission() local
3276 task = get_proc_task(inode); in proc_tid_comm_permission()
3277 if (!task) in proc_tid_comm_permission()
3279 is_same_tgroup = same_thread_group(current, task); in proc_tid_comm_permission()
3280 put_task_struct(task); in proc_tid_comm_permission()
3414 struct task_struct *task, const void *ptr) in proc_task_instantiate() argument
3417 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_task_instantiate()
3426 pid_update_inode(task, inode); in proc_task_instantiate()
3434 struct task_struct *task; in proc_task_lookup() local
3449 task = find_task_by_pid_ns(tid, ns); in proc_task_lookup()
3450 if (task) in proc_task_lookup()
3451 get_task_struct(task); in proc_task_lookup()
3453 if (!task) in proc_task_lookup()
3455 if (!same_thread_group(leader, task)) in proc_task_lookup()
3458 result = proc_task_instantiate(dentry, task, NULL); in proc_task_lookup()
3460 put_task_struct(task); in proc_task_lookup()
3482 struct task_struct *pos, *task; in first_tid() local
3489 task = pid_task(pid, PIDTYPE_PID); in first_tid()
3490 if (!task) in first_tid()
3496 if (pos && same_thread_group(pos, task)) in first_tid()
3501 if (nr >= get_nr_threads(task)) in first_tid()
3507 pos = task = task->group_leader; in first_tid()
3511 } while_each_thread(task, pos); in first_tid()
3548 struct task_struct *task; in proc_task_readdir() local
3564 for (task = first_tid(proc_pid(inode), tid, ctx->pos - 2, ns); in proc_task_readdir()
3565 task; in proc_task_readdir()
3566 task = next_tid(task), ctx->pos++) { in proc_task_readdir()
3569 tid = task_pid_nr_ns(task, ns); in proc_task_readdir()
3572 proc_task_instantiate, task, NULL)) { in proc_task_readdir()
3576 put_task_struct(task); in proc_task_readdir()