cg: Fix restoration of tasks into existing cgroups
When we omit the --manage-cgroups on dump the controllers section in cgroups image lacks the none-d entries (the name=systemd is the most typical). If it happens, that init task lives in non-criu cgset (it can be so if we do --shell-job dump from another terminal and see criu and root task living in different user.slice systemd cgroups) then on restore the move_in_cgroup() would fail to lookup the required controller. In order to fix this we should still call the collect_cgroups() on dump, so that it adds the none-d controllers into the list, but don't dump the dirs tree itself. The patch looks ugly, but it just moves the current_controller evaluation from the middle of the loop upwards (and renames the char *opts variable not to conflict with global opts). Signed-off-by:Pavel Emelyanov <xemul@parallels.com> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com>
Showing
Please
register
or
sign in
to comment