Commit 9ace34a8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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 f5d39b02 ("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
parents e0348c1f cff5f49d
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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;