diff options
author | Roman Gushchin <guro@fb.com> | 2019-09-12 10:56:45 -0700 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2019-09-12 14:04:45 -0700 |
commit | 97a61369830ab085df5aed0ff9256f35b07d425a (patch) | |
tree | 6030eff72cde967285d9ee8c8cdc330399e2f899 /kernel/groups.c | |
parent | 44e9d308a51fbf6d2e5a913f7452a5d5f1902249 (diff) | |
download | linux-97a61369830ab085df5aed0ff9256f35b07d425a.tar.gz linux-97a61369830ab085df5aed0ff9256f35b07d425a.tar.bz2 linux-97a61369830ab085df5aed0ff9256f35b07d425a.zip |
cgroup: freezer: fix frozen state inheritance
If a new child cgroup is created in the frozen cgroup hierarchy
(one or more of ancestor cgroups is frozen), the CGRP_FREEZE cgroup
flag should be set. Otherwise if a process will be attached to the
child cgroup, it won't become frozen.
The problem can be reproduced with the test_cgfreezer_mkdir test.
This is the output before this patch:
~/test_freezer
ok 1 test_cgfreezer_simple
ok 2 test_cgfreezer_tree
ok 3 test_cgfreezer_forkbomb
Cgroup /sys/fs/cgroup/cg_test_mkdir_A/cg_test_mkdir_B isn't frozen
not ok 4 test_cgfreezer_mkdir
ok 5 test_cgfreezer_rmdir
ok 6 test_cgfreezer_migrate
ok 7 test_cgfreezer_ptrace
ok 8 test_cgfreezer_stopped
ok 9 test_cgfreezer_ptraced
ok 10 test_cgfreezer_vfork
And with this patch:
~/test_freezer
ok 1 test_cgfreezer_simple
ok 2 test_cgfreezer_tree
ok 3 test_cgfreezer_forkbomb
ok 4 test_cgfreezer_mkdir
ok 5 test_cgfreezer_rmdir
ok 6 test_cgfreezer_migrate
ok 7 test_cgfreezer_ptrace
ok 8 test_cgfreezer_stopped
ok 9 test_cgfreezer_ptraced
ok 10 test_cgfreezer_vfork
Reported-by: Mark Crossen <mcrossen@fb.com>
Signed-off-by: Roman Gushchin <guro@fb.com>
Fixes: 76f969e8948d ("cgroup: cgroup v2 freezer")
Cc: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org # v5.2+
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/groups.c')
0 files changed, 0 insertions, 0 deletions