Lines Matching refs:task
181 static int get_task_root(struct task_struct *task, struct path *root) in get_task_root() argument
185 task_lock(task); in get_task_root()
186 if (task->fs) { in get_task_root()
187 get_fs_root(task->fs, root); in get_task_root()
190 task_unlock(task); in get_task_root()
196 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_cwd_link() local
199 if (task) { in proc_cwd_link()
200 task_lock(task); in proc_cwd_link()
201 if (task->fs) { in proc_cwd_link()
202 get_fs_pwd(task->fs, path); in proc_cwd_link()
205 task_unlock(task); in proc_cwd_link()
206 put_task_struct(task); in proc_cwd_link()
213 struct task_struct *task = get_proc_task(d_inode(dentry)); in proc_root_link() local
216 if (task) { in proc_root_link()
217 result = get_task_root(task, path); in proc_root_link()
218 put_task_struct(task); in proc_root_link()
395 struct pid *pid, struct task_struct *task) in proc_pid_wchan() argument
400 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_pid_wchan()
403 wchan = get_wchan(task); in proc_pid_wchan()
415 static int lock_trace(struct task_struct *task) in lock_trace() argument
417 int err = down_read_killable(&task->signal->exec_update_lock); in lock_trace()
420 if (!ptrace_may_access(task, PTRACE_MODE_ATTACH_FSCREDS)) { in lock_trace()
421 up_read(&task->signal->exec_update_lock); in lock_trace()
427 static void unlock_trace(struct task_struct *task) in unlock_trace() argument
429 up_read(&task->signal->exec_update_lock); in unlock_trace()
437 struct pid *pid, struct task_struct *task) in proc_pid_stack() argument
461 err = lock_trace(task); in proc_pid_stack()
465 nr_entries = stack_trace_save_tsk(task, entries, in proc_pid_stack()
472 unlock_trace(task); in proc_pid_stack()
485 struct pid *pid, struct task_struct *task) in proc_pid_schedstat() argument
491 (unsigned long long)task->se.sum_exec_runtime, in proc_pid_schedstat()
492 (unsigned long long)task->sched_info.run_delay, in proc_pid_schedstat()
493 task->sched_info.pcount); in proc_pid_schedstat()
504 struct task_struct *task = get_proc_task(inode); in lstats_show_proc() local
506 if (!task) in lstats_show_proc()
510 struct latency_record *lr = &task->latency_record[i]; in lstats_show_proc()
526 put_task_struct(task); in lstats_show_proc()
538 struct task_struct *task = get_proc_task(file_inode(file)); in lstats_write() local
540 if (!task) in lstats_write()
542 clear_tsk_latency_tracing(task); in lstats_write()
543 put_task_struct(task); in lstats_write()
559 struct pid *pid, struct task_struct *task) in proc_oom_score() argument
565 badness = oom_badness(task, totalpages); in proc_oom_score()
605 struct pid *pid, struct task_struct *task) in proc_pid_limits() argument
612 if (!lock_task_sighand(task, &flags)) in proc_pid_limits()
614 memcpy(rlim, task->signal->rlim, sizeof(struct rlimit) * RLIM_NLIMITS); in proc_pid_limits()
615 unlock_task_sighand(task, &flags); in proc_pid_limits()
649 struct pid *pid, struct task_struct *task) in proc_pid_syscall() argument
655 res = lock_trace(task); in proc_pid_syscall()
659 if (task_current_syscall(task, &info)) in proc_pid_syscall()
670 unlock_trace(task); in proc_pid_syscall()
683 struct task_struct *task; in proc_fd_access_allowed() local
689 task = get_proc_task(inode); in proc_fd_access_allowed()
690 if (task) { in proc_fd_access_allowed()
691 allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in proc_fd_access_allowed()
692 put_task_struct(task); in proc_fd_access_allowed()
719 struct task_struct *task, in has_pid_permissions() argument
728 return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in has_pid_permissions()
734 return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS); in has_pid_permissions()
741 struct task_struct *task; in proc_pid_permission() local
744 task = get_proc_task(inode); in proc_pid_permission()
745 if (!task) in proc_pid_permission()
747 has_perms = has_pid_permissions(fs_info, task, HIDEPID_NO_ACCESS); in proc_pid_permission()
748 put_task_struct(task); in proc_pid_permission()
777 struct task_struct *task; in proc_single_show() local
780 task = get_pid_task(pid, PIDTYPE_PID); in proc_single_show()
781 if (!task) in proc_single_show()
784 ret = PROC_I(inode)->op.proc_show(m, ns, pid, task); in proc_single_show()
786 put_task_struct(task); in proc_single_show()
805 struct task_struct *task = get_proc_task(inode); in proc_mem_open() local
808 if (task) { in proc_mem_open()
809 mm = mm_access(task, mode | PTRACE_MODE_FSCREDS); in proc_mem_open()
810 put_task_struct(task); in proc_mem_open()
1064 struct task_struct *task = get_proc_task(file_inode(file)); in oom_adj_read() local
1069 if (!task) in oom_adj_read()
1071 if (task->signal->oom_score_adj == OOM_SCORE_ADJ_MAX) in oom_adj_read()
1074 oom_adj = (task->signal->oom_score_adj * -OOM_DISABLE) / in oom_adj_read()
1076 put_task_struct(task); in oom_adj_read()
1086 struct task_struct *task; in __set_oom_adj() local
1089 task = get_proc_task(file_inode(file)); in __set_oom_adj()
1090 if (!task) in __set_oom_adj()
1095 if (oom_adj < task->signal->oom_score_adj && in __set_oom_adj()
1105 current->comm, task_pid_nr(current), task_pid_nr(task), in __set_oom_adj()
1106 task_pid_nr(task)); in __set_oom_adj()
1108 if ((short)oom_adj < task->signal->oom_score_adj_min && in __set_oom_adj()
1120 if (!task->vfork_done) { in __set_oom_adj()
1121 struct task_struct *p = find_lock_task_mm(task); in __set_oom_adj()
1132 task->signal->oom_score_adj = oom_adj; in __set_oom_adj()
1134 task->signal->oom_score_adj_min = (short)oom_adj; in __set_oom_adj()
1135 trace_oom_score_adj_update(task); in __set_oom_adj()
1142 if (same_thread_group(task, p)) in __set_oom_adj()
1162 put_task_struct(task); in __set_oom_adj()
1223 struct task_struct *task = get_proc_task(file_inode(file)); in oom_score_adj_read() local
1228 if (!task) in oom_score_adj_read()
1230 oom_score_adj = task->signal->oom_score_adj; in oom_score_adj_read()
1231 put_task_struct(task); in oom_score_adj_read()
1277 struct task_struct *task = get_proc_task(inode); in proc_loginuid_read() local
1281 if (!task) in proc_loginuid_read()
1285 audit_get_loginuid(task))); in proc_loginuid_read()
1286 put_task_struct(task); in proc_loginuid_read()
1343 struct task_struct *task = get_proc_task(inode); in proc_sessionid_read() local
1347 if (!task) in proc_sessionid_read()
1350 audit_get_sessionid(task)); in proc_sessionid_read()
1351 put_task_struct(task); in proc_sessionid_read()
1365 struct task_struct *task = get_proc_task(file_inode(file)); in proc_fault_inject_read() local
1370 if (!task) in proc_fault_inject_read()
1372 make_it_fail = task->make_it_fail; in proc_fault_inject_read()
1373 put_task_struct(task); in proc_fault_inject_read()
1383 struct task_struct *task; in proc_fault_inject_write() local
1401 task = get_proc_task(file_inode(file)); in proc_fault_inject_write()
1402 if (!task) in proc_fault_inject_write()
1404 task->make_it_fail = make_it_fail; in proc_fault_inject_write()
1405 put_task_struct(task); in proc_fault_inject_write()
1419 struct task_struct *task; in proc_fail_nth_write() local
1427 task = get_proc_task(file_inode(file)); in proc_fail_nth_write()
1428 if (!task) in proc_fail_nth_write()
1430 task->fail_nth = n; in proc_fail_nth_write()
1431 put_task_struct(task); in proc_fail_nth_write()
1439 struct task_struct *task; in proc_fail_nth_read() local
1443 task = get_proc_task(file_inode(file)); in proc_fail_nth_read()
1444 if (!task) in proc_fail_nth_read()
1446 len = snprintf(numbuf, sizeof(numbuf), "%u\n", task->fail_nth); in proc_fail_nth_read()
1447 put_task_struct(task); in proc_fail_nth_read()
1911 struct task_struct *task; in proc_exe_link() local
1914 task = get_proc_task(d_inode(dentry)); in proc_exe_link()
1915 if (!task) in proc_exe_link()
1917 exe_file = get_task_exe_file(task); in proc_exe_link()
1918 put_task_struct(task); in proc_exe_link()
2004 void task_dump_owner(struct task_struct *task, umode_t mode, in task_dump_owner() argument
2014 if (unlikely(task->flags & PF_KTHREAD)) { in task_dump_owner()
2022 cred = __task_cred(task); in task_dump_owner()
2037 task_lock(task); in task_dump_owner()
2038 mm = task->mm; in task_dump_owner()
2056 task_unlock(task); in task_dump_owner()
2076 struct task_struct *task, umode_t mode) in proc_pid_make_inode() argument
2098 pid = get_task_pid(task, PIDTYPE_PID); in proc_pid_make_inode()
2110 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in proc_pid_make_inode()
2111 security_task_to_inode(task, inode); in proc_pid_make_inode()
2126 struct task_struct *task; in pid_getattr() local
2133 task = pid_task(proc_pid(inode), PIDTYPE_PID); in pid_getattr()
2134 if (task) { in pid_getattr()
2135 if (!has_pid_permissions(fs_info, task, HIDEPID_INVISIBLE)) { in pid_getattr()
2143 task_dump_owner(task, inode->i_mode, &stat->uid, &stat->gid); in pid_getattr()
2154 void pid_update_inode(struct task_struct *task, struct inode *inode) in pid_update_inode() argument
2156 task_dump_owner(task, inode->i_mode, &inode->i_uid, &inode->i_gid); in pid_update_inode()
2159 security_task_to_inode(task, inode); in pid_update_inode()
2170 struct task_struct *task; in pid_revalidate() local
2176 task = get_proc_task(inode); in pid_revalidate()
2178 if (task) { in pid_revalidate()
2179 pid_update_inode(task, inode); in pid_revalidate()
2180 put_task_struct(task); in pid_revalidate()
2222 instantiate_t instantiate, struct task_struct *task, const void *ptr) in proc_fill_cache() argument
2238 res = instantiate(child, task, ptr); in proc_fill_cache()
2303 struct task_struct *task; in map_files_d_revalidate() local
2311 task = get_proc_task(inode); in map_files_d_revalidate()
2312 if (!task) in map_files_d_revalidate()
2315 mm = mm_access(task, PTRACE_MODE_READ_FSCREDS); in map_files_d_revalidate()
2331 task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); in map_files_d_revalidate()
2333 security_task_to_inode(task, inode); in map_files_d_revalidate()
2338 put_task_struct(task); in map_files_d_revalidate()
2353 struct task_struct *task; in map_files_get_link() local
2358 task = get_proc_task(d_inode(dentry)); in map_files_get_link()
2359 if (!task) in map_files_get_link()
2362 mm = get_task_mm(task); in map_files_get_link()
2363 put_task_struct(task); in map_files_get_link()
2423 struct task_struct *task, const void *ptr) in proc_map_files_instantiate() argument
2429 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFLNK | in proc_map_files_instantiate()
2450 struct task_struct *task; in proc_map_files_lookup() local
2455 task = get_proc_task(dir); in proc_map_files_lookup()
2456 if (!task) in proc_map_files_lookup()
2460 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_lookup()
2467 mm = get_task_mm(task); in proc_map_files_lookup()
2481 result = proc_map_files_instantiate(dentry, task, in proc_map_files_lookup()
2489 put_task_struct(task); in proc_map_files_lookup()
2504 struct task_struct *task; in proc_map_files_readdir() local
2514 task = get_proc_task(file_inode(file)); in proc_map_files_readdir()
2515 if (!task) in proc_map_files_readdir()
2519 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) in proc_map_files_readdir()
2526 mm = get_task_mm(task); in proc_map_files_readdir()
2578 task, in proc_map_files_readdir()
2585 put_task_struct(task); in proc_map_files_readdir()
2600 struct task_struct *task; member
2610 tp->task = get_pid_task(tp->pid, PIDTYPE_PID); in timers_start()
2611 if (!tp->task) in timers_start()
2614 tp->sighand = lock_task_sighand(tp->task, &tp->flags); in timers_start()
2618 return seq_list_start(&tp->task->signal->posix_timers, *pos); in timers_start()
2624 return seq_list_next(v, &tp->task->signal->posix_timers, pos); in timers_next()
2632 unlock_task_sighand(tp->task, &tp->flags); in timers_stop()
2636 if (tp->task) { in timers_stop()
2637 put_task_struct(tp->task); in timers_stop()
2638 tp->task = NULL; in timers_stop()
2791 struct task_struct *task, const void *ptr) in proc_pident_instantiate() argument
2797 inode = proc_pid_make_inode(dentry->d_sb, task, p->mode); in proc_pident_instantiate()
2809 pid_update_inode(task, inode); in proc_pident_instantiate()
2819 struct task_struct *task = get_proc_task(dir); in proc_pident_lookup() local
2822 if (!task) in proc_pident_lookup()
2833 res = proc_pident_instantiate(dentry, task, p); in proc_pident_lookup()
2837 put_task_struct(task); in proc_pident_lookup()
2845 struct task_struct *task = get_proc_task(file_inode(file)); in proc_pident_readdir() local
2848 if (!task) in proc_pident_readdir()
2859 proc_pident_instantiate, task, p)) in proc_pident_readdir()
2864 put_task_struct(task); in proc_pident_readdir()
2882 struct task_struct *task = get_proc_task(inode); in proc_pid_attr_read() local
2884 if (!task) in proc_pid_attr_read()
2887 length = security_getprocattr(task, PROC_I(inode)->op.lsm, in proc_pid_attr_read()
2890 put_task_struct(task); in proc_pid_attr_read()
2901 struct task_struct *task; in proc_pid_attr_write() local
2910 task = pid_task(proc_pid(inode), PIDTYPE_PID); in proc_pid_attr_write()
2911 if (!task) { in proc_pid_attr_write()
2916 if (current != task) { in proc_pid_attr_write()
3057 struct task_struct *task = get_proc_task(file_inode(file)); in proc_coredump_filter_read() local
3063 if (!task) in proc_coredump_filter_read()
3067 mm = get_task_mm(task); in proc_coredump_filter_read()
3076 put_task_struct(task); in proc_coredump_filter_read()
3086 struct task_struct *task; in proc_coredump_filter_write() local
3098 task = get_proc_task(file_inode(file)); in proc_coredump_filter_write()
3099 if (!task) in proc_coredump_filter_write()
3102 mm = get_task_mm(task); in proc_coredump_filter_write()
3116 put_task_struct(task); in proc_coredump_filter_write()
3131 static int do_io_accounting(struct task_struct *task, struct seq_file *m, int whole) in do_io_accounting() argument
3133 struct task_io_accounting acct = task->ioac; in do_io_accounting()
3137 result = down_read_killable(&task->signal->exec_update_lock); in do_io_accounting()
3141 if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)) { in do_io_accounting()
3146 if (whole && lock_task_sighand(task, &flags)) { in do_io_accounting()
3147 struct task_struct *t = task; in do_io_accounting()
3149 task_io_accounting_add(&acct, &task->signal->ioac); in do_io_accounting()
3150 while_each_thread(task, t) in do_io_accounting()
3153 unlock_task_sighand(task, &flags); in do_io_accounting()
3173 up_read(&task->signal->exec_update_lock); in do_io_accounting()
3178 struct pid *pid, struct task_struct *task) in proc_tid_io_accounting() argument
3180 return do_io_accounting(task, m, 0); in proc_tid_io_accounting()
3184 struct pid *pid, struct task_struct *task) in proc_tgid_io_accounting() argument
3186 return do_io_accounting(task, m, 1); in proc_tgid_io_accounting()
3195 struct task_struct *task; in proc_id_map_open() local
3199 task = get_proc_task(inode); in proc_id_map_open()
3200 if (task) { in proc_id_map_open()
3202 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_id_map_open()
3204 put_task_struct(task); in proc_id_map_open()
3273 struct task_struct *task; in proc_setgroups_open() local
3277 task = get_proc_task(inode); in proc_setgroups_open()
3278 if (task) { in proc_setgroups_open()
3280 ns = get_user_ns(task_cred_xxx(task, user_ns)); in proc_setgroups_open()
3282 put_task_struct(task); in proc_setgroups_open()
3323 struct pid *pid, struct task_struct *task) in proc_pid_personality() argument
3325 int err = lock_trace(task); in proc_pid_personality()
3327 seq_printf(m, "%08x\n", task->personality); in proc_pid_personality()
3328 unlock_trace(task); in proc_pid_personality()
3335 struct pid *pid, struct task_struct *task) in proc_pid_patch_state() argument
3337 seq_printf(m, "%d\n", task->patch_state); in proc_pid_patch_state()
3344 struct pid *pid, struct task_struct *task) in proc_stack_depth() argument
3347 (task->prev_lowest_stack & (THREAD_SIZE - 1)); in proc_stack_depth()
3349 (task->lowest_stack & (THREAD_SIZE - 1)); in proc_stack_depth()
3359 struct pid *pid, struct task_struct *task) in proc_token_operations() argument
3361 seq_printf(m, "%#llx %#llx\n", task->token, task->ftoken); in proc_token_operations()
3559 struct task_struct *task, const void *ptr) in proc_pid_instantiate() argument
3563 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_pid_instantiate()
3572 pid_update_inode(task, inode); in proc_pid_instantiate()
3580 struct task_struct *task; in proc_pid_lookup() local
3593 task = find_task_by_pid_ns(tgid, ns); in proc_pid_lookup()
3594 if (task) in proc_pid_lookup()
3595 get_task_struct(task); in proc_pid_lookup()
3597 if (!task) in proc_pid_lookup()
3602 if (!has_pid_permissions(fs_info, task, HIDEPID_NO_ACCESS)) in proc_pid_lookup()
3606 result = proc_pid_instantiate(dentry, task, NULL); in proc_pid_lookup()
3608 put_task_struct(task); in proc_pid_lookup()
3619 struct task_struct *task; member
3625 if (iter.task) in next_tgid()
3626 put_task_struct(iter.task); in next_tgid()
3629 iter.task = NULL; in next_tgid()
3633 iter.task = pid_task(pid, PIDTYPE_TGID); in next_tgid()
3634 if (!iter.task) { in next_tgid()
3638 get_task_struct(iter.task); in next_tgid()
3670 iter.task = NULL; in proc_pid_readdir()
3672 iter.task; in proc_pid_readdir()
3678 if (!has_pid_permissions(fs_info, iter.task, HIDEPID_INVISIBLE)) in proc_pid_readdir()
3684 proc_pid_instantiate, iter.task, NULL)) { in proc_pid_readdir()
3685 put_task_struct(iter.task); in proc_pid_readdir()
3708 struct task_struct *task; in proc_tid_comm_permission() local
3710 task = get_proc_task(inode); in proc_tid_comm_permission()
3711 if (!task) in proc_tid_comm_permission()
3713 is_same_tgroup = same_thread_group(current, task); in proc_tid_comm_permission()
3714 put_task_struct(task); in proc_tid_comm_permission()
3867 struct task_struct *task, const void *ptr) in proc_task_instantiate() argument
3870 inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); in proc_task_instantiate()
3879 pid_update_inode(task, inode); in proc_task_instantiate()
3887 struct task_struct *task; in proc_task_lookup() local
3904 task = find_task_by_pid_ns(tid, ns); in proc_task_lookup()
3905 if (task) in proc_task_lookup()
3906 get_task_struct(task); in proc_task_lookup()
3908 if (!task) in proc_task_lookup()
3910 if (!same_thread_group(leader, task)) in proc_task_lookup()
3913 result = proc_task_instantiate(dentry, task, NULL); in proc_task_lookup()
3915 put_task_struct(task); in proc_task_lookup()
3937 struct task_struct *pos, *task; in first_tid() local
3944 task = pid_task(pid, PIDTYPE_PID); in first_tid()
3945 if (!task) in first_tid()
3951 if (pos && same_thread_group(pos, task)) in first_tid()
3956 if (nr >= get_nr_threads(task)) in first_tid()
3962 pos = task = task->group_leader; in first_tid()
3966 } while_each_thread(task, pos); in first_tid()
4003 struct task_struct *task; in proc_task_readdir() local
4019 for (task = first_tid(proc_pid(inode), tid, ctx->pos - 2, ns); in proc_task_readdir()
4020 task; in proc_task_readdir()
4021 task = next_tid(task), ctx->pos++) { in proc_task_readdir()
4024 tid = task_pid_nr_ns(task, ns); in proc_task_readdir()
4027 proc_task_instantiate, task, NULL)) { in proc_task_readdir()
4031 put_task_struct(task); in proc_task_readdir()