Lines Matching refs:freezer

44 struct freezer {  struct
51 static inline struct freezer *css_freezer(struct cgroup_subsys_state *css) in css_freezer() argument
53 return css ? container_of(css, struct freezer, css) : NULL; in css_freezer()
56 static inline struct freezer *task_freezer(struct task_struct *task) in task_freezer()
61 static struct freezer *parent_freezer(struct freezer *freezer) in parent_freezer() argument
63 return css_freezer(freezer->css.parent); in parent_freezer()
95 struct freezer *freezer; in freezer_css_alloc() local
97 freezer = kzalloc(sizeof(struct freezer), GFP_KERNEL); in freezer_css_alloc()
98 if (!freezer) in freezer_css_alloc()
101 return &freezer->css; in freezer_css_alloc()
113 struct freezer *freezer = css_freezer(css); in freezer_css_online() local
114 struct freezer *parent = parent_freezer(freezer); in freezer_css_online()
119 freezer->state |= CGROUP_FREEZER_ONLINE; in freezer_css_online()
122 freezer->state |= CGROUP_FREEZING_PARENT | CGROUP_FROZEN; in freezer_css_online()
140 struct freezer *freezer = css_freezer(css); in freezer_css_offline() local
145 if (freezer->state & CGROUP_FREEZING) in freezer_css_offline()
148 freezer->state = 0; in freezer_css_offline()
186 struct freezer *freezer = css_freezer(new_css); in freezer_attach() local
188 if (!(freezer->state & CGROUP_FREEZING)) { in freezer_attach()
194 while (freezer && (freezer->state & CGROUP_FROZEN)) { in freezer_attach()
195 freezer->state &= ~CGROUP_FROZEN; in freezer_attach()
196 freezer = parent_freezer(freezer); in freezer_attach()
216 struct freezer *freezer; in freezer_fork() local
231 freezer = task_freezer(task); in freezer_fork()
232 if (freezer->state & CGROUP_FREEZING) in freezer_fork()
257 struct freezer *freezer = css_freezer(css); in update_if_frozen() local
264 if (!(freezer->state & CGROUP_FREEZING) || in update_if_frozen()
265 (freezer->state & CGROUP_FROZEN)) in update_if_frozen()
271 struct freezer *child = css_freezer(pos); in update_if_frozen()
289 freezer->state |= CGROUP_FROZEN; in update_if_frozen()
321 static void freeze_cgroup(struct freezer *freezer) in freeze_cgroup() argument
326 css_task_iter_start(&freezer->css, 0, &it); in freeze_cgroup()
332 static void unfreeze_cgroup(struct freezer *freezer) in unfreeze_cgroup() argument
337 css_task_iter_start(&freezer->css, 0, &it); in unfreeze_cgroup()
352 static void freezer_apply_state(struct freezer *freezer, bool freeze, in freezer_apply_state() argument
358 if (!(freezer->state & CGROUP_FREEZER_ONLINE)) in freezer_apply_state()
362 if (!(freezer->state & CGROUP_FREEZING)) in freezer_apply_state()
364 freezer->state |= state; in freezer_apply_state()
365 freeze_cgroup(freezer); in freezer_apply_state()
367 bool was_freezing = freezer->state & CGROUP_FREEZING; in freezer_apply_state()
369 freezer->state &= ~state; in freezer_apply_state()
371 if (!(freezer->state & CGROUP_FREEZING)) { in freezer_apply_state()
372 freezer->state &= ~CGROUP_FROZEN; in freezer_apply_state()
375 unfreeze_cgroup(freezer); in freezer_apply_state()
388 static void freezer_change_state(struct freezer *freezer, bool freeze) in freezer_change_state() argument
400 css_for_each_descendant_pre(pos, &freezer->css) { in freezer_change_state()
401 struct freezer *pos_f = css_freezer(pos); in freezer_change_state()
402 struct freezer *parent = parent_freezer(pos_f); in freezer_change_state()
408 if (pos_f == freezer) in freezer_change_state()
445 struct freezer *freezer = css_freezer(css); in freezer_self_freezing_read() local
447 return (bool)(freezer->state & CGROUP_FREEZING_SELF); in freezer_self_freezing_read()
453 struct freezer *freezer = css_freezer(css); in freezer_parent_freezing_read() local
455 return (bool)(freezer->state & CGROUP_FREEZING_PARENT); in freezer_parent_freezing_read()