Lines Matching refs:task
155 static struct fs_struct *get_fs_struct(struct task_struct *task) in get_fs_struct() argument
158 task_lock(task); in get_fs_struct()
159 fs = task->fs; in get_fs_struct()
162 task_unlock(task); in get_fs_struct()
180 struct task_struct *task = get_proc_task(inode); in proc_cwd_link() local
184 if (task) { in proc_cwd_link()
185 fs = get_fs_struct(task); in proc_cwd_link()
186 put_task_struct(task); in proc_cwd_link()
201 struct task_struct *task = get_proc_task(inode); in proc_root_link() local
205 if (task) { in proc_root_link()
206 fs = get_fs_struct(task); in proc_root_link()
207 put_task_struct(task); in proc_root_link()
223 static int check_mem_permission(struct task_struct *task) in check_mem_permission() argument
229 if (task == current) in check_mem_permission()
236 if (task_is_stopped_or_traced(task)) { in check_mem_permission()
239 match = (tracehook_tracer_task(task) == current); in check_mem_permission()
241 if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) in check_mem_permission()
251 struct mm_struct *mm_for_maps(struct task_struct *task) in mm_for_maps() argument
253 struct mm_struct *mm = get_task_mm(task); in mm_for_maps()
257 task_lock(task); in mm_for_maps()
258 if (task->mm != mm) in mm_for_maps()
260 if (task->mm != current->mm && in mm_for_maps()
261 __ptrace_may_access(task, PTRACE_MODE_READ) < 0 && in mm_for_maps()
264 task_unlock(task); in mm_for_maps()
267 task_unlock(task); in mm_for_maps()
273 static int proc_pid_cmdline(struct task_struct *task, char * buffer) in proc_pid_cmdline() argument
277 struct mm_struct *mm = get_task_mm(task); in proc_pid_cmdline()
288 res = access_process_vm(task, mm->arg_start, buffer, len, 0); in proc_pid_cmdline()
300 res += access_process_vm(task, mm->env_start, buffer+res, len, 0); in proc_pid_cmdline()
310 static int proc_pid_auxv(struct task_struct *task, char *buffer) in proc_pid_auxv() argument
313 struct mm_struct *mm = get_task_mm(task); in proc_pid_auxv()
334 static int proc_pid_wchan(struct task_struct *task, char *buffer) in proc_pid_wchan() argument
339 wchan = get_wchan(task); in proc_pid_wchan()
353 struct pid *pid, struct task_struct *task) in proc_pid_stack() argument
367 save_stack_trace_tsk(task, &trace); in proc_pid_stack()
383 static int proc_pid_schedstat(struct task_struct *task, char *buffer) in proc_pid_schedstat() argument
386 (unsigned long long)task->se.sum_exec_runtime, in proc_pid_schedstat()
387 (unsigned long long)task->sched_info.run_delay, in proc_pid_schedstat()
388 task->sched_info.pcount); in proc_pid_schedstat()
397 struct task_struct *task = get_proc_task(inode); in lstats_show_proc() local
399 if (!task) in lstats_show_proc()
403 if (task->latency_record[i].backtrace[0]) { in lstats_show_proc()
406 task->latency_record[i].count, in lstats_show_proc()
407 task->latency_record[i].time, in lstats_show_proc()
408 task->latency_record[i].max); in lstats_show_proc()
412 if (!task->latency_record[i].backtrace[q]) in lstats_show_proc()
414 if (task->latency_record[i].backtrace[q] == ULONG_MAX) in lstats_show_proc()
416 sprint_symbol(sym, task->latency_record[i].backtrace[q]); in lstats_show_proc()
426 put_task_struct(task); in lstats_show_proc()
438 struct task_struct *task = get_proc_task(file->f_dentry->d_inode); in lstats_write() local
440 if (!task) in lstats_write()
442 clear_all_latency_tracing(task); in lstats_write()
443 put_task_struct(task); in lstats_write()
460 static int proc_oom_score(struct task_struct *task, char *buffer) in proc_oom_score() argument
467 points = badness(task, uptime.tv_sec); in proc_oom_score()
497 static int proc_pid_limits(struct task_struct *task, char *buffer) in proc_pid_limits() argument
506 if (!lock_task_sighand(task, &flags)) in proc_pid_limits()
508 memcpy(rlim, task->signal->rlim, sizeof(struct rlimit) * RLIM_NLIMITS); in proc_pid_limits()
509 unlock_task_sighand(task, &flags); in proc_pid_limits()
542 static int proc_pid_syscall(struct task_struct *task, char *buffer) in proc_pid_syscall() argument
547 if (task_current_syscall(task, &nr, args, 6, &sp, &pc)) in proc_pid_syscall()
568 struct task_struct *task; in proc_fd_access_allowed() local
574 task = get_proc_task(inode); in proc_fd_access_allowed()
575 if (task) { in proc_fd_access_allowed()
576 allowed = ptrace_may_access(task, PTRACE_MODE_READ); in proc_fd_access_allowed()
577 put_task_struct(task); in proc_fd_access_allowed()
603 struct task_struct *task = get_proc_task(inode); in mounts_open_common() local
611 if (task) { in mounts_open_common()
613 nsp = task_nsproxy(task); in mounts_open_common()
621 fs = get_fs_struct(task); in mounts_open_common()
622 put_task_struct(task); in mounts_open_common()
735 struct task_struct *task = get_proc_task(inode); in proc_info_read() local
738 if (!task) in proc_info_read()
748 length = PROC_I(inode)->op.proc_read(task, (char*)page); in proc_info_read()
754 put_task_struct(task); in proc_info_read()
768 struct task_struct *task; in proc_single_show() local
773 task = get_pid_task(pid, PIDTYPE_PID); in proc_single_show()
774 if (!task) in proc_single_show()
777 ret = PROC_I(inode)->op.proc_show(m, ns, pid, task); in proc_single_show()
779 put_task_struct(task); in proc_single_show()
811 struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); in mem_read() local
817 if (!task) in mem_read()
820 if (check_mem_permission(task)) in mem_read()
830 mm = get_task_mm(task); in mem_read()
845 retval = access_process_vm(task, src, page, this_len, 0); in mem_read()
846 if (!retval || check_mem_permission(task)) { in mem_read()
869 put_task_struct(task); in mem_read()
883 struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); in mem_write() local
887 if (!task) in mem_write()
890 if (check_mem_permission(task)) in mem_write()
907 retval = access_process_vm(task, dst, page, this_len, 1); in mem_write()
921 put_task_struct(task); in mem_write()
953 struct task_struct *task = get_proc_task(file->f_dentry->d_inode); in environ_read() local
959 if (!task) in environ_read()
962 if (!ptrace_may_access(task, PTRACE_MODE_READ)) in environ_read()
972 mm = get_task_mm(task); in environ_read()
987 retval = access_process_vm(task, (mm->env_start + src), in environ_read()
1011 put_task_struct(task); in environ_read()
1023 struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); in oom_adjust_read() local
1028 if (!task) in oom_adjust_read()
1030 oom_adjust = task->oomkilladj; in oom_adjust_read()
1031 put_task_struct(task); in oom_adjust_read()
1041 struct task_struct *task; in oom_adjust_write() local
1056 task = get_proc_task(file->f_path.dentry->d_inode); in oom_adjust_write()
1057 if (!task) in oom_adjust_write()
1059 if (oom_adjust < task->oomkilladj && !capable(CAP_SYS_RESOURCE)) { in oom_adjust_write()
1060 put_task_struct(task); in oom_adjust_write()
1063 task->oomkilladj = oom_adjust; in oom_adjust_write()
1064 put_task_struct(task); in oom_adjust_write()
1108 struct task_struct *task = get_proc_task(inode); in proc_loginuid_read() local
1112 if (!task) in proc_loginuid_read()
1115 audit_get_loginuid(task)); in proc_loginuid_read()
1116 put_task_struct(task); in proc_loginuid_read()
1173 struct task_struct *task = get_proc_task(inode); in proc_sessionid_read() local
1177 if (!task) in proc_sessionid_read()
1180 audit_get_sessionid(task)); in proc_sessionid_read()
1181 put_task_struct(task); in proc_sessionid_read()
1194 struct task_struct *task = get_proc_task(file->f_dentry->d_inode); in proc_fault_inject_read() local
1199 if (!task) in proc_fault_inject_read()
1201 make_it_fail = task->make_it_fail; in proc_fault_inject_read()
1202 put_task_struct(task); in proc_fault_inject_read()
1212 struct task_struct *task; in proc_fault_inject_write() local
1226 task = get_proc_task(file->f_dentry->d_inode); in proc_fault_inject_write()
1227 if (!task) in proc_fault_inject_write()
1229 task->make_it_fail = make_it_fail; in proc_fault_inject_write()
1230 put_task_struct(task); in proc_fault_inject_write()
1355 struct task_struct *task; in proc_exe_link() local
1359 task = get_proc_task(inode); in proc_exe_link()
1360 if (!task) in proc_exe_link()
1362 mm = get_task_mm(task); in proc_exe_link()
1363 put_task_struct(task); in proc_exe_link()
1448 static int task_dumpable(struct task_struct *task) in task_dumpable() argument
1453 task_lock(task); in task_dumpable()
1454 mm = task->mm; in task_dumpable()
1457 task_unlock(task); in task_dumpable()
1464 static struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *task) in proc_pid_make_inode() argument
1484 ei->pid = get_task_pid(task, PIDTYPE_PID); in proc_pid_make_inode()
1488 if (task_dumpable(task)) { in proc_pid_make_inode()
1490 cred = __task_cred(task); in proc_pid_make_inode()
1495 security_task_to_inode(task, inode); in proc_pid_make_inode()
1508 struct task_struct *task; in pid_getattr() local
1516 task = pid_task(proc_pid(inode), PIDTYPE_PID); in pid_getattr()
1517 if (task) { in pid_getattr()
1519 task_dumpable(task)) { in pid_getattr()
1520 cred = __task_cred(task); in pid_getattr()
1549 struct task_struct *task = get_proc_task(inode); in pid_revalidate() local
1552 if (task) { in pid_revalidate()
1554 task_dumpable(task)) { in pid_revalidate()
1556 cred = __task_cred(task); in pid_revalidate()
1565 security_task_to_inode(task, inode); in pid_revalidate()
1566 put_task_struct(task); in pid_revalidate()
1607 instantiate_t instantiate, struct task_struct *task, const void *ptr) in proc_fill_cache() argument
1624 child = instantiate(dir->d_inode, new, task, ptr); in proc_fill_cache()
1673 struct task_struct *task = get_proc_task(inode); in proc_fd_info() local
1678 if (task) { in proc_fd_info()
1679 files = get_files_struct(task); in proc_fd_info()
1680 put_task_struct(task); in proc_fd_info()
1718 struct task_struct *task = get_proc_task(inode); in tid_fd_revalidate() local
1723 if (task) { in tid_fd_revalidate()
1724 files = get_files_struct(task); in tid_fd_revalidate()
1730 if (task_dumpable(task)) { in tid_fd_revalidate()
1732 cred = __task_cred(task); in tid_fd_revalidate()
1741 security_task_to_inode(task, inode); in tid_fd_revalidate()
1742 put_task_struct(task); in tid_fd_revalidate()
1748 put_task_struct(task); in tid_fd_revalidate()
1761 struct dentry *dentry, struct task_struct *task, const void *ptr) in proc_fd_instantiate() argument
1770 inode = proc_pid_make_inode(dir->i_sb, task); in proc_fd_instantiate()
1775 files = get_files_struct(task); in proc_fd_instantiate()
1818 struct task_struct *task = get_proc_task(dir); in proc_lookupfd_common() local
1822 if (!task) in proc_lookupfd_common()
1827 result = instantiate(dir, dentry, task, &fd); in proc_lookupfd_common()
1829 put_task_struct(task); in proc_lookupfd_common()
1950 struct dentry *dentry, struct task_struct *task, const void *ptr) in proc_fdinfo_instantiate() argument
1957 inode = proc_pid_make_inode(dir->i_sb, task); in proc_fdinfo_instantiate()
2002 struct dentry *dentry, struct task_struct *task, const void *ptr) in proc_pident_instantiate() argument
2009 inode = proc_pid_make_inode(dir->i_sb, task); in proc_pident_instantiate()
2037 struct task_struct *task = get_proc_task(dir); in proc_pident_lookup() local
2042 if (!task) in proc_pident_lookup()
2059 error = proc_pident_instantiate(dir, dentry, task, p); in proc_pident_lookup()
2061 put_task_struct(task); in proc_pident_lookup()
2067 filldir_t filldir, struct task_struct *task, const struct pid_entry *p) in proc_pident_fill_cache() argument
2070 proc_pident_instantiate, task, p); in proc_pident_fill_cache()
2080 struct task_struct *task = get_proc_task(inode); in proc_pident_readdir() local
2086 if (!task) in proc_pident_readdir()
2115 if (proc_pident_fill_cache(filp, dirent, filldir, task, p) < 0) in proc_pident_readdir()
2124 put_task_struct(task); in proc_pident_readdir()
2136 struct task_struct *task = get_proc_task(inode); in proc_pid_attr_read() local
2138 if (!task) in proc_pid_attr_read()
2141 length = security_getprocattr(task, in proc_pid_attr_read()
2144 put_task_struct(task); in proc_pid_attr_read()
2157 struct task_struct *task = get_proc_task(inode); in proc_pid_attr_write() local
2160 if (!task) in proc_pid_attr_write()
2179 length = security_setprocattr(task, in proc_pid_attr_write()
2185 put_task_struct(task); in proc_pid_attr_write()
2235 struct task_struct *task = get_proc_task(file->f_dentry->d_inode); in proc_coredump_filter_read() local
2241 if (!task) in proc_coredump_filter_read()
2245 mm = get_task_mm(task); in proc_coredump_filter_read()
2254 put_task_struct(task); in proc_coredump_filter_read()
2264 struct task_struct *task; in proc_coredump_filter_write() local
2287 task = get_proc_task(file->f_dentry->d_inode); in proc_coredump_filter_write()
2288 if (!task) in proc_coredump_filter_write()
2292 mm = get_task_mm(task); in proc_coredump_filter_write()
2305 put_task_struct(task); in proc_coredump_filter_write()
2367 struct task_struct *task = get_proc_task(inode); in proc_base_revalidate() local
2368 if (task) { in proc_base_revalidate()
2369 put_task_struct(task); in proc_base_revalidate()
2383 struct dentry *dentry, struct task_struct *task, const void *ptr) in proc_base_instantiate() argument
2403 ei->pid = get_task_pid(task, PIDTYPE_PID); in proc_base_instantiate()
2430 struct task_struct *task = get_proc_task(dir); in proc_base_lookup() local
2435 if (!task) in proc_base_lookup()
2449 error = proc_base_instantiate(dir, dentry, task, p); in proc_base_lookup()
2452 put_task_struct(task); in proc_base_lookup()
2458 filldir_t filldir, struct task_struct *task, const struct pid_entry *p) in proc_base_fill_cache() argument
2461 proc_base_instantiate, task, p); in proc_base_fill_cache()
2465 static int do_io_accounting(struct task_struct *task, char *buffer, int whole) in do_io_accounting() argument
2467 struct task_io_accounting acct = task->ioac; in do_io_accounting()
2470 if (whole && lock_task_sighand(task, &flags)) { in do_io_accounting()
2471 struct task_struct *t = task; in do_io_accounting()
2473 task_io_accounting_add(&acct, &task->signal->ioac); in do_io_accounting()
2474 while_each_thread(task, t) in do_io_accounting()
2477 unlock_task_sighand(task, &flags); in do_io_accounting()
2496 static int proc_tid_io_accounting(struct task_struct *task, char *buffer) in proc_tid_io_accounting() argument
2498 return do_io_accounting(task, buffer, 0); in proc_tid_io_accounting()
2501 static int proc_tgid_io_accounting(struct task_struct *task, char *buffer) in proc_tgid_io_accounting() argument
2503 return do_io_accounting(task, buffer, 1); in proc_tgid_io_accounting()
2508 struct pid *pid, struct task_struct *task) in proc_pid_personality() argument
2510 seq_printf(m, "%08x\n", task->personality); in proc_pid_personality()
2690 void proc_flush_task(struct task_struct *task) in proc_flush_task() argument
2696 pid = task_pid(task); in proc_flush_task()
2697 if (thread_group_leader(task)) in proc_flush_task()
2698 tgid = task_tgid(task); in proc_flush_task()
2713 struct task_struct *task, const void *ptr) in proc_pid_instantiate() argument
2718 inode = proc_pid_make_inode(dir->i_sb, task); in proc_pid_instantiate()
2743 struct task_struct *task; in proc_pid_lookup() local
2757 task = find_task_by_pid_ns(tgid, ns); in proc_pid_lookup()
2758 if (task) in proc_pid_lookup()
2759 get_task_struct(task); in proc_pid_lookup()
2761 if (!task) in proc_pid_lookup()
2764 result = proc_pid_instantiate(dir, dentry, task, NULL); in proc_pid_lookup()
2765 put_task_struct(task); in proc_pid_lookup()
2776 struct task_struct *task; member
2782 if (iter.task) in next_tgid()
2783 put_task_struct(iter.task); in next_tgid()
2786 iter.task = NULL; in next_tgid()
2790 iter.task = pid_task(pid, PIDTYPE_PID); in next_tgid()
2803 if (!iter.task || !has_group_leader_pid(iter.task)) { in next_tgid()
2807 get_task_struct(iter.task); in next_tgid()
2821 proc_pid_instantiate, iter.task, NULL); in proc_pid_fill_cache()
2842 iter.task = NULL; in proc_pid_readdir()
2845 iter.task; in proc_pid_readdir()
2849 put_task_struct(iter.task); in proc_pid_readdir()
2954 struct dentry *dentry, struct task_struct *task, const void *ptr) in proc_task_instantiate() argument
2958 inode = proc_pid_make_inode(dir->i_sb, task); in proc_task_instantiate()
2983 struct task_struct *task; in proc_task_lookup() local
2997 task = find_task_by_pid_ns(tid, ns); in proc_task_lookup()
2998 if (task) in proc_task_lookup()
2999 get_task_struct(task); in proc_task_lookup()
3001 if (!task) in proc_task_lookup()
3003 if (!same_thread_group(leader, task)) in proc_task_lookup()
3006 result = proc_task_instantiate(dir, dentry, task, NULL); in proc_task_lookup()
3008 put_task_struct(task); in proc_task_lookup()
3085 struct task_struct *task, int tid) in proc_task_fill_cache() argument
3090 proc_task_instantiate, task, NULL); in proc_task_fill_cache()
3099 struct task_struct *task; in proc_task_readdir() local
3105 task = get_proc_task(inode); in proc_task_readdir()
3106 if (!task) in proc_task_readdir()
3109 if (pid_alive(task)) { in proc_task_readdir()
3110 leader = task->group_leader; in proc_task_readdir()
3114 put_task_struct(task); in proc_task_readdir()
3140 for (task = first_tid(leader, tid, filp->f_pos - 2, ns); in proc_task_readdir()
3141 task; in proc_task_readdir()
3142 task = next_tid(task), filp->f_pos++) { in proc_task_readdir()
3143 tid = task_pid_nr_ns(task, ns); in proc_task_readdir()
3144 if (proc_task_fill_cache(filp, dirent, filldir, task, tid) < 0) { in proc_task_readdir()
3148 put_task_struct(task); in proc_task_readdir()