Commit f74ed43d authored by Pavel Emelyanov's avatar Pavel Emelyanov

libcriu: Add criu_add_cg_root() call

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
Acked-by: 's avatarTycho Andersen <tycho.andersen@canonical.com>
parent 070757c1
...@@ -232,6 +232,46 @@ er: ...@@ -232,6 +232,46 @@ er:
return -ENOMEM; return -ENOMEM;
} }
int criu_add_cg_root(char *ctrl, char *path)
{
int nr;
CgroupRoot **a, *root;
root = malloc(sizeof(*root));
if (!root)
goto er;
cgroup_root__init(root);
if (ctrl) {
root->ctrl = strdup(ctrl);
if (!root->ctrl)
goto er_r;
}
root->path = strdup(path);
if (!root->path)
goto er_c;
nr = opts->n_cg_root + 1;
a = realloc(opts->cg_root, nr * sizeof(root));
if (!a)
goto er_p;
a[nr - 1] = root;
opts->cg_root = a;
opts->n_cg_root = nr;
return 0;
er_p:
free(root->path);
er_c:
if (root->ctrl)
free(root->ctrl);
er_r:
free(root);
er:
return -ENOMEM;
}
int criu_add_veth_pair(char *in, char *out) int criu_add_veth_pair(char *in, char *out)
{ {
int nr; int nr;
......
...@@ -51,6 +51,7 @@ void criu_set_manage_cgroups(bool manage); ...@@ -51,6 +51,7 @@ void criu_set_manage_cgroups(bool manage);
int criu_set_exec_cmd(int argc, char *argv[]); int criu_set_exec_cmd(int argc, char *argv[]);
int criu_add_ext_mount(char *key, char *val); int criu_add_ext_mount(char *key, char *val);
int criu_add_veth_pair(char *in, char *out); int criu_add_veth_pair(char *in, char *out);
int criu_add_cg_root(char *ctrl, char *path);
/* /*
* The criu_notify_arg_t na argument is an opaque * The criu_notify_arg_t na argument is an opaque
......
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