Lines Matching refs:autogroup

7 #include "autogroup.h"
11 static struct autogroup autogroup_default;
40 init_task->signal->autogroup = &autogroup_default;
46 kfree(tg->autogroup);
51 struct autogroup *ag = container_of(kref, struct autogroup, kref);
62 static inline void autogroup_kref_put(struct autogroup *ag)
67 static inline struct autogroup *autogroup_kref_get(struct autogroup *ag)
73 static inline struct autogroup *autogroup_task_get(struct task_struct *p)
75 struct autogroup *ag;
81 ag = autogroup_kref_get(p->signal->autogroup);
87 static inline struct autogroup *autogroup_create(void)
89 struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL);
115 tg->autogroup = ag;
137 * value of signal->autogroup but in this case sched_move_task() will
141 * to avoid autogroup->tg, so we abuse PF_EXITING flag for this case.
153 * see this thread after that: we can no longer use signal->autogroup.
160 autogroup_move_group(struct task_struct *p, struct autogroup *ag)
162 struct autogroup *prev;
169 prev = p->signal->autogroup;
175 p->signal->autogroup = autogroup_kref_get(ag);
177 * We can't avoid sched_move_task() after we changed signal->autogroup,
179 * race with cgroup code which can read autogroup = prev under rq->lock.
197 struct autogroup *ag = autogroup_create();
215 sig->autogroup = autogroup_task_get(current);
220 autogroup_kref_put(sig->autogroup);
236 struct autogroup *ag;
273 struct autogroup *ag = autogroup_task_get(p);
279 seq_printf(m, "/autogroup-%ld nice %d\n", ag->id, ag->nice);
292 return snprintf(buf, buflen, "%s-%ld", "/autogroup", tg->autogroup->id);