OSDN Git Service

Merge branch 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Feb 2020 01:07:05 +0000 (17:07 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 11 Feb 2020 01:07:05 +0000 (17:07 -0800)
Pull cgroup fix from Tejun Heo:
 "I made a mistake while removing cgroup task list lazy init
  optimization making the root cgroup.procs show entries for the
  init_tasks. The zero entries doesn't cause critical failures but does
  make systemd print out warning messages during boot.

  Fix it by omitting init_tasks as they should be"

* 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup: init_tasks shouldn't be linked to the root cgroup

kernel/cgroup/cgroup.c

index db552b9..75f6873 100644 (file)
@@ -5927,11 +5927,14 @@ void cgroup_post_fork(struct task_struct *child)
 
        spin_lock_irq(&css_set_lock);
 
-       WARN_ON_ONCE(!list_empty(&child->cg_list));
-       cset = task_css_set(current); /* current is @child's parent */
-       get_css_set(cset);
-       cset->nr_tasks++;
-       css_set_move_task(child, NULL, cset, false);
+       /* init tasks are special, only link regular threads */
+       if (likely(child->pid)) {
+               WARN_ON_ONCE(!list_empty(&child->cg_list));
+               cset = task_css_set(current); /* current is @child's parent */
+               get_css_set(cset);
+               cset->nr_tasks++;
+               css_set_move_task(child, NULL, cset, false);
+       }
 
        /*
         * If the cgroup has to be frozen, the new task has too.  Let's set