Lines Matching refs:task
742 static void css_set_move_task(struct task_struct *task, in css_set_move_task() argument
754 WARN_ON_ONCE(list_empty(&task->cg_list)); in css_set_move_task()
765 if (it->task_pos == &task->cg_list) in css_set_move_task()
768 list_del_init(&task->cg_list); in css_set_move_task()
772 WARN_ON_ONCE(!list_empty(&task->cg_list)); in css_set_move_task()
782 WARN_ON_ONCE(task->flags & PF_EXITING); in css_set_move_task()
784 rcu_assign_pointer(task->cgroups, to_cset); in css_set_move_task()
785 list_add_tail(&task->cg_list, use_mg_tasks ? &to_cset->mg_tasks : in css_set_move_task()
1286 static struct cgroup *task_cgroup_from_root(struct task_struct *task, in task_cgroup_from_root() argument
1294 return cset_cgroup_from_root(task_css_set(task), root); in task_cgroup_from_root()
2366 int task_cgroup_path(struct task_struct *task, char *buf, size_t buflen) in task_cgroup_path() argument
2379 cgrp = task_cgroup_from_root(task, root); in task_cgroup_path()
2433 static void cgroup_taskset_add(struct task_struct *task, in cgroup_taskset_add() argument
2441 if (task->flags & PF_EXITING) in cgroup_taskset_add()
2445 if (list_empty(&task->cg_list)) in cgroup_taskset_add()
2448 cset = task_css_set(task); in cgroup_taskset_add()
2452 list_move_tail(&task->cg_list, &cset->mg_tasks); in cgroup_taskset_add()
2488 struct task_struct *task = tset->cur_task; in cgroup_taskset_next() local
2491 if (!task) in cgroup_taskset_next()
2492 task = list_first_entry(&cset->mg_tasks, in cgroup_taskset_next()
2495 task = list_next_entry(task, cg_list); in cgroup_taskset_next()
2497 if (&task->cg_list != &cset->mg_tasks) { in cgroup_taskset_next()
2499 tset->cur_task = task; in cgroup_taskset_next()
2512 return task; in cgroup_taskset_next()
2516 task = NULL; in cgroup_taskset_next()
2536 struct task_struct *task, *tmp_task; in cgroup_taskset_migrate() local
2563 list_for_each_entry_safe(task, tmp_task, &cset->mg_tasks, cg_list) { in cgroup_taskset_migrate()
2564 struct css_set *from_cset = task_css_set(task); in cgroup_taskset_migrate()
2568 css_set_move_task(task, from_cset, to_cset, true); in cgroup_taskset_migrate()
2780 struct task_struct *task; in cgroup_migrate() local
2789 task = leader; in cgroup_migrate()
2791 cgroup_taskset_add(task, &tset); in cgroup_migrate()
2794 } while_each_thread(leader, task); in cgroup_migrate()
2813 struct task_struct *task; in cgroup_attach_task() local
2822 task = leader; in cgroup_attach_task()
2824 cgroup_migrate_add_src(task_css_set(task), dst_cgrp, in cgroup_attach_task()
2828 } while_each_thread(leader, task); in cgroup_attach_task()
2845 static int cgroup_procs_write_permission(struct task_struct *task, in cgroup_procs_write_permission() argument
2850 const struct cred *tcred = get_task_cred(task); in cgroup_procs_write_permission()
2869 cgrp = task_cgroup_from_root(task, &cgrp_dfl_root); in cgroup_procs_write_permission()
3109 struct task_struct *task, *ntask; in cgroup_update_dfl_csses() local
3116 list_for_each_entry_safe(task, ntask, &src_cset->tasks, cg_list) in cgroup_update_dfl_csses()
3117 cgroup_taskset_add(task, &tset); in cgroup_update_dfl_csses()
4364 struct task_struct *task; in cgroup_transfer_tasks() local
4390 task = css_task_iter_next(&it); in cgroup_transfer_tasks()
4391 if (task) in cgroup_transfer_tasks()
4392 get_task_struct(task); in cgroup_transfer_tasks()
4395 if (task) { in cgroup_transfer_tasks()
4396 ret = cgroup_migrate(task, false, to->root); in cgroup_transfer_tasks()
4398 trace_cgroup_transfer_tasks(to, task, false); in cgroup_transfer_tasks()
4399 put_task_struct(task); in cgroup_transfer_tasks()
4401 } while (task && !ret); in cgroup_transfer_tasks()
6051 void cgroup_free(struct task_struct *task) in cgroup_free() argument
6053 struct css_set *cset = task_css_set(task); in cgroup_free()
6058 ss->free(task); in cgroup_free()
6470 static struct ns_common *cgroupns_get(struct task_struct *task) in cgroupns_get() argument
6475 task_lock(task); in cgroupns_get()
6476 nsproxy = task->nsproxy; in cgroupns_get()
6481 task_unlock(task); in cgroupns_get()
6600 struct task_struct *task; in cgroup_css_links_read() local
6605 list_for_each_entry(task, &cset->tasks, cg_list) { in cgroup_css_links_read()
6608 seq_printf(seq, " task %d\n", task_pid_vnr(task)); in cgroup_css_links_read()
6611 list_for_each_entry(task, &cset->mg_tasks, cg_list) { in cgroup_css_links_read()
6614 seq_printf(seq, " task %d\n", task_pid_vnr(task)); in cgroup_css_links_read()