From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Serge E. Hallyn" Subject: Re: [PATCH 1/4] cgroup freezer: Fix buggy resume test for tasks frozen with cgroup freezer Date: Wed, 3 Jun 2009 11:05:51 -0500 Message-ID: <20090603160551.GB7848@us.ibm.com> References: <91260d5797bcf233ca54c7b41da8278e99b4ca66.1244019829.git.matthltc@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <91260d5797bcf233ca54c7b41da8278e99b4ca66.1244019829.git.matthltc-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Matt Helsley Cc: "Rafael J. Wysocki" , Paul Menage , Containers , Pavel Machek , linux-pm-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: containers.vger.kernel.org Quoting Matt Helsley (matthltc-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org): > -int cgroup_frozen(struct task_struct *task) > +int cgroup_freezing_or_frozen(struct task_struct *task) > { > struct freezer *freezer; > enum freezer_state state; > > task_lock(task); > freezer = task_freezer(task); > - state = freezer->state; > + if (!freezer->css.cgroup->parent) > + state = CGROUP_THAWED; /* root cgroup can't be frozen */ > + else > + state = freezer->state; Why do you have to add this special-casing now? I thought we were already preventing freezing the root cgroup, so freezer->state should be sane in that case anyway? > task_unlock(task); > > - return state == CGROUP_FROZEN; > + return (state == CGROUP_FREEZING) || (state == CGROUP_FROZEN); > } -serge