| Date | Sun, 28 Aug 2011 19:39:54 +0200 | | From | Oleg Nesterov <> | | Subject | Re: [PATCH 13/16] cgroup_freezer: prepare for removal of TIF_FREEZE |
| |
Hi Tejun.
Well, yet another sorry for delay ;)
On 08/19, Tejun Heo wrote: > > @@ -279,7 +268,6 @@ static int try_to_freeze_cgroup(struct cgroup *cgroup, struct freezer *freezer) > struct task_struct *task; > unsigned int num_cant_freeze_now = 0; > > - freezer->state = CGROUP_FREEZING;
...
> @@ -321,6 +307,8 @@ static int freezer_change_state(struct cgroup *cgroup, > if (goal_state == freezer->state) > goto out; > > + freezer->state = goal_state; > +
This doesn't look right at all... Unless I misssed something.
A user writes "FROZEN" into the control file, our goal is CGROUP_FROZEN.
But. freezer_change_state() should set CGROUP_FREEZING, not CGROUP_FROZEN. This cgrp is not frozen yet, _FROZEN should be set by update_if_frozen(), assuming that the user reads the state waiting until the operation completes.
Oleg.
|