Merge tag 'cgroup-for-6.7-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup fix from Tejun Heo:
"Just one fix.
Commit f5d39b0208 ("freezer,sched: Rewrite core freezer logic")
changed how freezing state is recorded which made cgroup_freezing()
disagree with the actual state of the task while thawing triggering a
warning. Fix it by updating cgroup_freezing()"
* tag 'cgroup-for-6.7-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cgroup_freezer: cgroup_freezing: Check if not frozen
This commit is contained in:
@@ -66,9 +66,15 @@ static struct freezer *parent_freezer(struct freezer *freezer)
|
||||
bool cgroup_freezing(struct task_struct *task)
|
||||
{
|
||||
bool ret;
|
||||
unsigned int state;
|
||||
|
||||
rcu_read_lock();
|
||||
ret = task_freezer(task)->state & CGROUP_FREEZING;
|
||||
/* Check if the cgroup is still FREEZING, but not FROZEN. The extra
|
||||
* !FROZEN check is required, because the FREEZING bit is not cleared
|
||||
* when the state FROZEN is reached.
|
||||
*/
|
||||
state = task_freezer(task)->state;
|
||||
ret = (state & CGROUP_FREEZING) && !(state & CGROUP_FROZEN);
|
||||
rcu_read_unlock();
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user