cgroup: don't fail on multi-headed freezer cgroup
cgroup: don't fail on multi-headed freezer cgroup

Consider the case where --freeze-cgroup=/lxc/foo, but (e.g. with systemd in
lxc), all of the tasks actually live in a set of sub cgroups, e.g.
/lxc/foo/init.scope and others. In this case, we will have a multi-headed
controller, since there is nothing in the common parent. We should just
save the freezer value in all of these heads instead of failing.

Note that this doesn't address the larger problem that only the top level
freezer.state file is c/r'd, or waht happens when the container itself has
frozen tasks but not at the top level. After some discussion, there is no
nice way to atomically test-and-set the cgroup freezer, so we'll need some
other kernel help. But I'll ignore this for now :)

Signed-off-by: Tycho Andersen <10c18fcb898ee6b17d6575d444b125d10b3f4d6a@canonical.com>
Signed-off-by: Pavel Emelyanov <c9a32589e048e044184536f7ac71ef92fe82df3e@virtuozzo.com>

KKoukiou/criu-remote,AuthenticEshkinKot/criu,eabatalov/criu,tych0/criu,ldu4/criu,efiop/criu,ldu4/criu,efiop/criu,AuthenticEshkinKot/criu,tych0/criu,ldu4/criu,efiop/criu,AuthenticEshkinKot/criu,AuthenticEshkinKot/criu,eabatalov/criu,tych0/criu,KKoukiou/criu-remote,KKoukiou/criu-remote,efiop/criu,AuthenticEshkinKot/criu,tych0/criu,ldu4/criu,efiop/criu,ldu4/criu,ldu4/criu,KKoukiou/criu-remote,AuthenticEshkinKot/criu,eabatalov/criu,tych0/criu,eabatalov/criu,eabatalov/criu,eabatalov/criu,KKoukiou/criu-remote,KKoukiou/criu-remote,efiop/criu,tych0/criu