Lines Matching refs:task
170 static int get_task_root(struct task_struct *task, struct path *root) in get_task_root() argument
174 task_lock(task); in get_task_root()
175 if (task->fs) { in get_task_root()
176 get_fs_root(task->fs, root); in get_task_root()
179 task_unlock(task); in get_task_root()
185 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_cwd_link() local
188 if (task) { in proc_cwd_link()
189 task_lock(task); in proc_cwd_link()
190 if (task->fs) { in proc_cwd_link()
191 get_fs_pwd(task->fs, path); in proc_cwd_link()
194 task_unlock(task); in proc_cwd_link()
195 put_task_struct(task); in proc_cwd_link()
202 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_root_link() local
205 if (task) { in proc_root_link()
206 result = get_task_root(task, path); in proc_root_link()
207 put_task_struct(task); in proc_root_link()
384 struct pid *pid, struct task_struct *task) in proc_pid_wchan() argument
389 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_pid_wchan()
392 wchan = get_wchan(task); in proc_pid_wchan()
404 static int lock_trace(struct task_struct *task) in lock_trace() argument
406 int err = mutex_lock_killable(&task->signal->cred_guard_mutex); in lock_trace()
409 if (!ptrace_may_access(task, PTRACE_MODE_ATTACH_FSCREDS)) { in lock_trace()
410 mutex_unlock(&task->signal->cred_guard_mutex); in lock_trace()
416 static void unlock_trace(struct task_struct *task) in unlock_trace() argument
418 mutex_unlock(&task->signal->cred_guard_mutex); in unlock_trace()
426 struct pid *pid, struct task_struct *task) in proc_pid_stack() argument
450 err = lock_trace(task); in proc_pid_stack()
454 nr_entries = stack_trace_save_tsk(task, entries, in proc_pid_stack()
461 unlock_trace(task); in proc_pid_stack()
474 struct pid *pid, struct task_struct *task) in proc_pid_schedstat() argument
480 (unsigned long long)task->se.sum_exec_runtime, in proc_pid_schedstat()
481 (unsigned long long)task->sched_info.run_delay, in proc_pid_schedstat()
482 task->sched_info.pcount); in proc_pid_schedstat()
493 struct task_struct *task = get_proc_task(inode); in lstats_show_proc() local
495 if (!task) in lstats_show_proc()
499 struct latency_record *lr = &task->latency_record[i]; in lstats_show_proc()
515 put_task_struct(task); in lstats_show_proc()
527 struct task_struct *task = get_proc_task(file_inode(file)); in lstats_write() local
529 if (!task) in lstats_write()
531 clear_tsk_latency_tracing(task); in lstats_write()
532 put_task_struct(task); in lstats_write()
548 struct pid *pid, struct task_struct *task) in proc_oom_score() argument
553 points = oom_badness(task, totalpages) * 1000 / totalpages; in proc_oom_score()
585 struct pid *pid, struct task_struct *task) in proc_pid_limits() argument
592 if (!lock_task_sighand(task, &flags)) in proc_pid_limits()
594 memcpy(rlim, task->signal->rlim, sizeof(struct rlimit) * RLIM_NLIMITS); in proc_pid_limits()
595 unlock_task_sighand(task, &flags); in proc_pid_limits()
629 struct pid *pid, struct task_struct *task) in proc_pid_syscall() argument
635 res = lock_trace(task); in proc_pid_syscall()
639 if (task_current_syscall(task, &info)) in proc_pid_syscall()
650 unlock_trace(task); in proc_pid_syscall()
663 struct task_struct *task; in proc_fd_access_allowed() local
669 task = get_proc_task(inode); in proc_fd_access_allowed()
670 if (task) { in proc_fd_access_allowed()
671 allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in proc_fd_access_allowed()
672 put_task_struct(task); in proc_fd_access_allowed()
699 struct task_struct *task, in has_pid_permissions() argument
706 return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in has_pid_permissions()
713 struct task_struct *task; in proc_pid_permission() local
716 task = get_proc_task(inode); in proc_pid_permission()
717 if (!task) in proc_pid_permission()
719 has_perms = has_pid_permissions(pid, task, HIDEPID_NO_ACCESS); in proc_pid_permission()
720 put_task_struct(task); in proc_pid_permission()
749 struct task_struct *task; in proc_single_show() local
752 task = get_pid_task(pid, PIDTYPE_PID); in proc_single_show()
753 if (!task) in proc_single_show()
756 ret = PROC_I(inode)->op.proc_show(m, ns, pid, task); in proc_single_show()
758 put_task_struct(task); in proc_single_show()
777 struct task_struct *task = get_proc_task(inode); in proc_mem_open() local
780 if (task) { in proc_mem_open()
781 mm = mm_access(task, mode | PTRACE_MODE_FSCREDS); in proc_mem_open()
782 put_task_struct(task); in proc_mem_open()
1020 struct task_struct *task = get_proc_task(file_inode(file)); in oom_adj_read() local
1025 if (!task) in oom_adj_read()
1027 if (task->signal->oom_score_adj == OOM_SCORE_ADJ_MAX) in oom_adj_read()
1030 oom_adj = (task->signal->oom_score_adj * -OOM_DISABLE) / in oom_adj_read()
1032 put_task_struct(task); in oom_adj_read()
1041 struct task_struct *task; in __set_oom_adj() local
1044 task = get_proc_task(file_inode(file)); in __set_oom_adj()
1045 if (!task) in __set_oom_adj()
1050 if (oom_adj < task->signal->oom_score_adj && in __set_oom_adj()
1060 current->comm, task_pid_nr(current), task_pid_nr(task), in __set_oom_adj()
1061 task_pid_nr(task)); in __set_oom_adj()
1063 if ((short)oom_adj < task->signal->oom_score_adj_min && in __set_oom_adj()
1075 if (!task->vfork_done) { in __set_oom_adj()
1076 struct task_struct *p = find_lock_task_mm(task); in __set_oom_adj()
1087 task->signal->oom_score_adj = oom_adj; in __set_oom_adj()
1089 task->signal->oom_score_adj_min = (short)oom_adj; in __set_oom_adj()
1090 trace_oom_score_adj_update(task); in __set_oom_adj()
1097 if (same_thread_group(task, p)) in __set_oom_adj()
1117 put_task_struct(task); in __set_oom_adj()
1178 struct task_struct *task = get_proc_task(file_inode(file)); in oom_score_adj_read() local
1183 if (!task) in oom_score_adj_read()
1185 oom_score_adj = task->signal->oom_score_adj; in oom_score_adj_read()
1186 put_task_struct(task); in oom_score_adj_read()
1232 struct task_struct *task = get_proc_task(inode); in proc_loginuid_read() local
1236 if (!task) in proc_loginuid_read()
1240 audit_get_loginuid(task))); in proc_loginuid_read()
1241 put_task_struct(task); in proc_loginuid_read()
1294 struct task_struct *task = get_proc_task(inode); in proc_sessionid_read() local
1298 if (!task) in proc_sessionid_read()
1301 audit_get_sessionid(task)); in proc_sessionid_read()
1302 put_task_struct(task); in proc_sessionid_read()
1316 struct task_struct *task = get_proc_task(file_inode(file)); in proc_fault_inject_read() local
1321 if (!task) in proc_fault_inject_read()
1323 make_it_fail = task->make_it_fail; in proc_fault_inject_read()
1324 put_task_struct(task); in proc_fault_inject_read()
1334 struct task_struct *task; in proc_fault_inject_write() local
1352 task = get_proc_task(file_inode(file)); in proc_fault_inject_write()
1353 if (!task) in proc_fault_inject_write()
1355 task->make_it_fail = make_it_fail; in proc_fault_inject_write()
1356 put_task_struct(task); in proc_fault_inject_write()
1370 struct task_struct *task; in proc_fail_nth_write() local
1378 task = get_proc_task(file_inode(file)); in proc_fail_nth_write()
1379 if (!task) in proc_fail_nth_write()
1381 task->fail_nth = n; in proc_fail_nth_write()
1382 put_task_struct(task); in proc_fail_nth_write()
1390 struct task_struct *task; in proc_fail_nth_read() local
1394 task = get_proc_task(file_inode(file)); in proc_fail_nth_read()
1395 if (!task) in proc_fail_nth_read()
1397 len = snprintf(numbuf, sizeof(numbuf), "%u\n", task->fail_nth); in proc_fail_nth_read()
1398 put_task_struct(task); in proc_fail_nth_read()
1594 struct task_struct *task; in proc_exe_link() local
1597 task = get_proc_task(d_inode(dentry)); in proc_exe_link()
1598 if (!task) in proc_exe_link()
1600 exe_file = get_task_exe_file(task); in proc_exe_link()
1601 put_task_struct(task); in proc_exe_link()
1688 void task_dump_owner(struct task_struct *task, umode_t mode, in task_dump_owner() argument
1698 if (unlikely(task->flags & PF_KTHREAD)) { in task_dump_owner()
1706 cred = __task_cred(task); in task_dump_owner()
1721 task_lock(task); in task_dump_owner()
1722 mm = task->mm; in task_dump_owner()
1740 task_unlock(task); in task_dump_owner()
1747 struct task_struct *task, umode_t mode) in proc_pid_make_inode() argument
1768 ei->pid = get_task_pid(task, PIDTYPE_PID); in proc_pid_make_inode()
1772 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in proc_pid_make_inode()
1773 security_task_to_inode(task, inode); in proc_pid_make_inode()
1788 struct task_struct *task; in pid_getattr() local
1795 task = pid_task(proc_pid(inode), PIDTYPE_PID); in pid_getattr()
1796 if (task) { in pid_getattr()
1797 if (!has_pid_permissions(pid, task, HIDEPID_INVISIBLE)) { in pid_getattr()
1805 task_dump_owner(task, inode->i_mode, &stat->uid, &stat->gid); in pid_getattr()
1816 void pid_update_inode(struct task_struct *task, struct inode *inode) in pid_update_inode() argument
1818 task_dump_owner(task, inode->i_mode, &inode->i_uid, &inode->i_gid); in pid_update_inode()
1821 security_task_to_inode(task, inode); in pid_update_inode()
1832 struct task_struct *task; in pid_revalidate() local
1838 task = get_proc_task(inode); in pid_revalidate()
1840 if (task) { in pid_revalidate()
1841 pid_update_inode(task, inode); in pid_revalidate()
1842 put_task_struct(task); in pid_revalidate()
1884 instantiate_t instantiate, struct task_struct *task, const void *ptr) in proc_fill_cache() argument
1900 res = instantiate(child, task, ptr); in proc_fill_cache()
1965 struct task_struct *task; in map_files_d_revalidate() local
1973 task = get_proc_task(inode); in map_files_d_revalidate()
1974 if (!task) in map_files_d_revalidate()
1977 mm = mm_access(task, PTRACE_MODE_READ_FSCREDS); in map_files_d_revalidate()
1993 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in map_files_d_revalidate()
1995 security_task_to_inode(task, inode); in map_files_d_revalidate()
2000 put_task_struct(task); in map_files_d_revalidate()
2015 struct task_struct *task; in map_files_get_link() local
2020 task = get_proc_task(d_inode(dentry)); in map_files_get_link()
2021 if (!task) in map_files_get_link()
2024 mm = get_task_mm(task); in map_files_get_link()
2025 put_task_struct(task); in map_files_get_link()
2085 struct task_struct *task, const void *ptr) in proc_map_files_instantiate() argument
2091 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFLNK | in proc_map_files_instantiate()
2112 struct task_struct *task; in proc_map_files_lookup() local
2117 task = get_proc_task(dir); in proc_map_files_lookup()
2118 if (!task) in proc_map_files_lookup()
2122 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_lookup()
2129 mm = get_task_mm(task); in proc_map_files_lookup()
2143 result = proc_map_files_instantiate(dentry, task, in proc_map_files_lookup()
2151 put_task_struct(task); in proc_map_files_lookup()
2166 struct task_struct *task; in proc_map_files_readdir() local
2176 task = get_proc_task(file_inode(file)); in proc_map_files_readdir()
2177 if (!task) in proc_map_files_readdir()
2181 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_readdir()
2188 mm = get_task_mm(task); in proc_map_files_readdir()
2240 task, in proc_map_files_readdir()
2247 put_task_struct(task); in proc_map_files_readdir()
2262 struct task_struct *task; member
2272 tp->task = get_pid_task(tp->pid, PIDTYPE_PID); in timers_start()
2273 if (!tp->task) in timers_start()
2276 tp->sighand = lock_task_sighand(tp->task, &tp->flags); in timers_start()
2280 return seq_list_start(&tp->task->signal->posix_timers, *pos); in timers_start()
2286 return seq_list_next(v, &tp->task->signal->posix_timers, pos); in timers_next()
2294 unlock_task_sighand(tp->task, &tp->flags); in timers_stop()
2298 if (tp->task) { in timers_stop()
2299 put_task_struct(tp->task); in timers_stop()
2300 tp->task = NULL; in timers_stop()
2453 struct task_struct *task, const void *ptr) in proc_pident_instantiate() argument
2459 inode = proc_pid_make_inode(dentry->d_sb, task, p->mode); in proc_pident_instantiate()
2471 pid_update_inode(task, inode); in proc_pident_instantiate()
2481 struct task_struct *task = get_proc_task(dir); in proc_pident_lookup() local
2484 if (!task) in proc_pident_lookup()
2495 res = proc_pident_instantiate(dentry, task, p); in proc_pident_lookup()
2499 put_task_struct(task); in proc_pident_lookup()
2507 struct task_struct *task = get_proc_task(file_inode(file)); in proc_pident_readdir() local
2510 if (!task) in proc_pident_readdir()
2521 proc_pident_instantiate, task, p)) in proc_pident_readdir()
2526 put_task_struct(task); in proc_pident_readdir()
2537 struct task_struct *task = get_proc_task(inode); in proc_pid_attr_read() local
2539 if (!task) in proc_pid_attr_read()
2542 length = security_getprocattr(task, PROC_I(inode)->op.lsm, in proc_pid_attr_read()
2545 put_task_struct(task); in proc_pid_attr_read()
2556 struct task_struct *task; in proc_pid_attr_write() local
2561 task = pid_task(proc_pid(inode), PIDTYPE_PID); in proc_pid_attr_write()
2562 if (!task) { in proc_pid_attr_write()
2567 if (current != task) { in proc_pid_attr_write()
2693 struct task_struct *task = get_proc_task(file_inode(file)); in proc_coredump_filter_read() local
2699 if (!task) in proc_coredump_filter_read()
2703 mm = get_task_mm(task); in proc_coredump_filter_read()
2712 put_task_struct(task); in proc_coredump_filter_read()
2722 struct task_struct *task; in proc_coredump_filter_write() local
2734 task = get_proc_task(file_inode(file)); in proc_coredump_filter_write()
2735 if (!task) in proc_coredump_filter_write()
2738 mm = get_task_mm(task); in proc_coredump_filter_write()
2752 put_task_struct(task); in proc_coredump_filter_write()
2767 static int do_io_accounting(struct task_struct *task, struct seq_file *m, int whole) in do_io_accounting() argument
2769 struct task_io_accounting acct = task->ioac; in do_io_accounting()
2773 result = mutex_lock_killable(&task->signal->cred_guard_mutex); in do_io_accounting()
2777 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { in do_io_accounting()
2782 if (whole && lock_task_sighand(task, &flags)) { in do_io_accounting()
2783 struct task_struct *t = task; in do_io_accounting()
2785 task_io_accounting_add(&acct, &task->signal->ioac); in do_io_accounting()
2786 while_each_thread(task, t) in do_io_accounting()
2789 unlock_task_sighand(task, &flags); in do_io_accounting()
2809 mutex_unlock(&task->signal->cred_guard_mutex); in do_io_accounting()
2814 struct pid *pid, struct task_struct *task) in proc_tid_io_accounting() argument
2816 return do_io_accounting(task, m, 0); in proc_tid_io_accounting()
2820 struct pid *pid, struct task_struct *task) in proc_tgid_io_accounting() argument
2822 return do_io_accounting(task, m, 1); in proc_tgid_io_accounting()
2831 struct task_struct *task; in proc_id_map_open() local
2835 task = get_proc_task(inode); in proc_id_map_open()
2836 if (task) { in proc_id_map_open()
2838 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_id_map_open()
2840 put_task_struct(task); in proc_id_map_open()
2909 struct task_struct *task; in proc_setgroups_open() local
2913 task = get_proc_task(inode); in proc_setgroups_open()
2914 if (task) { in proc_setgroups_open()
2916 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_setgroups_open()
2918 put_task_struct(task); in proc_setgroups_open()
2959 struct pid *pid, struct task_struct *task) in proc_pid_personality() argument
2961 int err = lock_trace(task); in proc_pid_personality()
2963 seq_printf(m, "%08x\n", task->personality); in proc_pid_personality()
2964 unlock_trace(task); in proc_pid_personality()
2971 struct pid *pid, struct task_struct *task) in proc_pid_patch_state() argument
2973 seq_printf(m, "%d\n", task->patch_state); in proc_pid_patch_state()
2980 struct pid *pid, struct task_struct *task) in proc_stack_depth() argument
2983 (task->prev_lowest_stack & (THREAD_SIZE - 1)); in proc_stack_depth()
2985 (task->lowest_stack & (THREAD_SIZE - 1)); in proc_stack_depth()
3206 void proc_flush_task(struct task_struct *task) in proc_flush_task() argument
3212 pid = task_pid(task); in proc_flush_task()
3213 tgid = task_tgid(task); in proc_flush_task()
3223 struct task_struct *task, const void *ptr) in proc_pid_instantiate() argument
3227 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_pid_instantiate()
3236 pid_update_inode(task, inode); in proc_pid_instantiate()
3244 struct task_struct *task; in proc_pid_lookup() local
3255 task = find_task_by_pid_ns(tgid, ns); in proc_pid_lookup()
3256 if (task) in proc_pid_lookup()
3257 get_task_struct(task); in proc_pid_lookup()
3259 if (!task) in proc_pid_lookup()
3262 result = proc_pid_instantiate(dentry, task, NULL); in proc_pid_lookup()
3263 put_task_struct(task); in proc_pid_lookup()
3274 struct task_struct *task; member
3280 if (iter.task) in next_tgid()
3281 put_task_struct(iter.task); in next_tgid()
3284 iter.task = NULL; in next_tgid()
3288 iter.task = pid_task(pid, PIDTYPE_PID); in next_tgid()
3301 if (!iter.task || !has_group_leader_pid(iter.task)) { in next_tgid()
3305 get_task_struct(iter.task); in next_tgid()
3336 iter.task = NULL; in proc_pid_readdir()
3338 iter.task; in proc_pid_readdir()
3344 if (!has_pid_permissions(ns, iter.task, HIDEPID_INVISIBLE)) in proc_pid_readdir()
3350 proc_pid_instantiate, iter.task, NULL)) { in proc_pid_readdir()
3351 put_task_struct(iter.task); in proc_pid_readdir()
3374 struct task_struct *task; in proc_tid_comm_permission() local
3376 task = get_proc_task(inode); in proc_tid_comm_permission()
3377 if (!task) in proc_tid_comm_permission()
3379 is_same_tgroup = same_thread_group(current, task); in proc_tid_comm_permission()
3380 put_task_struct(task); in proc_tid_comm_permission()
3518 struct task_struct *task, const void *ptr) in proc_task_instantiate() argument
3521 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_task_instantiate()
3530 pid_update_inode(task, inode); in proc_task_instantiate()
3538 struct task_struct *task; in proc_task_lookup() local
3553 task = find_task_by_pid_ns(tid, ns); in proc_task_lookup()
3554 if (task) in proc_task_lookup()
3555 get_task_struct(task); in proc_task_lookup()
3557 if (!task) in proc_task_lookup()
3559 if (!same_thread_group(leader, task)) in proc_task_lookup()
3562 result = proc_task_instantiate(dentry, task, NULL); in proc_task_lookup()
3564 put_task_struct(task); in proc_task_lookup()
3586 struct task_struct *pos, *task; in first_tid() local
3593 task = pid_task(pid, PIDTYPE_PID); in first_tid()
3594 if (!task) in first_tid()
3600 if (pos && same_thread_group(pos, task)) in first_tid()
3605 if (nr >= get_nr_threads(task)) in first_tid()
3611 pos = task = task->group_leader; in first_tid()
3615 } while_each_thread(task, pos); in first_tid()
3652 struct task_struct *task; in proc_task_readdir() local
3668 for (task = first_tid(proc_pid(inode), tid, ctx->pos - 2, ns); in proc_task_readdir()
3669 task; in proc_task_readdir()
3670 task = next_tid(task), ctx->pos++) { in proc_task_readdir()
3673 tid = task_pid_nr_ns(task, ns); in proc_task_readdir()
3676 proc_task_instantiate, task, NULL)) { in proc_task_readdir()
3680 put_task_struct(task); in proc_task_readdir()