Commit a6f6d468 by Tycho Andersen Committed by Stéphane Graber

cgroup: get rid of weird hack in cgfsng_escape

We initialized cgfsng in a strange way inside of its implementation of escape so we could use it during checkpoint. Instead, the previous patch does a hacky initialization in criu.c, and we can get rid of the hacks elsewhere :) Signed-off-by: 's avatarTycho Andersen <tycho.andersen@canonical.com>
parent 02f2cba6
...@@ -1426,19 +1426,11 @@ static int cgfsng_nrtasks(void *hdata) { ...@@ -1426,19 +1426,11 @@ static int cgfsng_nrtasks(void *hdata) {
/* Only root needs to escape to the cgroup of its init */ /* Only root needs to escape to the cgroup of its init */
static bool cgfsng_escape() static bool cgfsng_escape()
{ {
struct cgfsng_handler_data *d;
int i; int i;
bool ret = false;
if (geteuid()) if (geteuid())
return true; return true;
d = cgfsng_init("criu-temp-cgfsng");
if (!d) {
ERROR("cgfsng_init failed");
return false;
}
for (i = 0; hierarchies[i]; i++) { for (i = 0; hierarchies[i]; i++) {
char *fullpath = must_make_path(hierarchies[i]->mountpoint, char *fullpath = must_make_path(hierarchies[i]->mountpoint,
hierarchies[i]->base_cgroup, hierarchies[i]->base_cgroup,
...@@ -1446,15 +1438,12 @@ static bool cgfsng_escape() ...@@ -1446,15 +1438,12 @@ static bool cgfsng_escape()
if (lxc_write_to_file(fullpath, "0", 2, false) != 0) { if (lxc_write_to_file(fullpath, "0", 2, false) != 0) {
SYSERROR("Failed to escape to %s", fullpath); SYSERROR("Failed to escape to %s", fullpath);
free(fullpath); free(fullpath);
goto out; return false;
} }
free(fullpath); free(fullpath);
} }
ret = true; return true;
out:
free_handler_data(d);
return ret;
} }
static int cgfsng_num_hierarchies(void) static int cgfsng_num_hierarchies(void)
......
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