Andrei Vagin <avagin@xxxxxxxxx> wrote: > Here is a reproducer for this problem: > > [root@fc24 ~]# cat fs-vs-cg > set -m > d=$(mktemp -d /tmp/cg.XXXXXX) > for i in `seq 2`; do > mkdir $d/a$i > mount -t cgroup -o none,name=xxxxy xxx $d/a$i > done > mkdir -p $d/a1/test > for i in `seq 2`; do > umount $d/a$i > done > d=$(mktemp -d /tmp/cg.XXXXXX) > for i in `seq 2`; do > mkdir $d/a$i > mount -t cgroup -o none,name=xxxxy xxx $d/a$i > done > rmdir $d/a1/test > for i in `seq 2`; do > umount $d/a$i > done > > You need to execute this script twice and it will stuck on a second > attmept. This causes: percpu ref (css_release) <= 0 (0) after switching to atomic without your patch and: percpu ref (css_release) <= 0 (-2) after switching to atomic with your patch, both followed by: WARNING: CPU: 0 PID: 0 at lib/percpu-refcount.c:155 percpu_ref_switch_to_atomic_rcu+0x90/0x1a0 on Al's for-next branch. David