criu: handle new cgroup layout

parent 2682ad16
...@@ -887,6 +887,7 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_ ...@@ -887,6 +887,7 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_
struct lxc_handler *handler; struct lxc_handler *handler;
int status = 0; int status = 0;
int pipes[2] = {-1, -1}; int pipes[2] = {-1, -1};
struct cgroup_ops *cgroup_ops;
/* Try to detach from the current controlling tty if it exists. /* Try to detach from the current controlling tty if it exists.
* Otherwise, lxc_init (via lxc_console) will attach the container's * Otherwise, lxc_init (via lxc_console) will attach the container's
...@@ -907,9 +908,25 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_ ...@@ -907,9 +908,25 @@ static void do_restore(struct lxc_container *c, int status_pipe, struct migrate_
if (lxc_init(c->name, handler) < 0) if (lxc_init(c->name, handler) < 0)
goto out; goto out;
cgroup_ops = handler->cgroup_ops;
if (!handler->cgroup_ops->payload_create(handler->cgroup_ops, handler)) { if (!cgroup_ops->monitor_create(cgroup_ops, handler)) {
ERROR("failed creating groups"); ERROR("Failed to create monitor cgroup");
goto out_fini_handler;
}
if (!cgroup_ops->monitor_enter(cgroup_ops, handler)) {
ERROR("Failed to enter monitor cgroup");
goto out_fini_handler;
}
if (!cgroup_ops->monitor_delegate_controllers(cgroup_ops)) {
ERROR("Failed to delegate controllers to monitor cgroup");
goto out_fini_handler;
}
if (!cgroup_ops->payload_create(cgroup_ops, handler)) {
ERROR("Failed creating cgroups");
goto out_fini_handler; goto out_fini_handler;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment