cgroup: fix incorrect WARN_ON_ONCE() in cgroup_setup_root()
authorTejun Heo <tj@kernel.org>
Thu, 14 Nov 2019 22:46:51 +0000 (14:46 -0800)
committerTejun Heo <tj@kernel.org>
Thu, 14 Nov 2019 22:46:51 +0000 (14:46 -0800)
743210386c03 ("cgroup: use cgrp->kn->id as the cgroup ID") added WARN
which triggers if cgroup_id(root_cgrp) is not 1.  This is fine on
64bit ino archs but on 32bit archs cgroup ID is ((gen << 32) | ino)
and gen starts at 1, so the root id is 0x1_0000_0001 instead of 1
always triggering the WARN.

What we wanna make sure is that the ino part is 1.  Fix it.

Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Fixes: 743210386c03 ("cgroup: use cgrp->kn->id as the cgroup ID")
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup/cgroup.c

index c12dcf7..53098c1 100644 (file)
@@ -1966,7 +1966,7 @@ int cgroup_setup_root(struct cgroup_root *root, u16 ss_mask)
                goto exit_root_id;
        }
        root_cgrp->kn = root->kf_root->kn;
-       WARN_ON_ONCE(cgroup_id(root_cgrp) != 1);
+       WARN_ON_ONCE(cgroup_ino(root_cgrp) != 1);
        root_cgrp->ancestor_ids[0] = cgroup_id(root_cgrp);
 
        ret = css_populate_dir(&root_cgrp->self);