Commit c5002f7c authored by Pavel Emelyanov's avatar Pavel Emelyanov

cg: Get yard fd on demand

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 042538b1
...@@ -930,10 +930,11 @@ void fini_cgroup(void) ...@@ -930,10 +930,11 @@ void fini_cgroup(void)
} }
static int restore_cgroup_prop(const CgroupPropEntry * cg_prop_entry_p, static int restore_cgroup_prop(const CgroupPropEntry * cg_prop_entry_p,
const char *cname, const char *dir, const int cg) const char *cname, const char *dir)
{ {
char path[PATH_MAX]; char path[PATH_MAX];
FILE *f; FILE *f;
int cg;
if (!cg_prop_entry_p->value) { if (!cg_prop_entry_p->value) {
pr_err("cg_prop_entry->value was empty when should have had a value"); pr_err("cg_prop_entry->value was empty when should have had a value");
...@@ -945,6 +946,7 @@ static int restore_cgroup_prop(const CgroupPropEntry * cg_prop_entry_p, ...@@ -945,6 +946,7 @@ static int restore_cgroup_prop(const CgroupPropEntry * cg_prop_entry_p,
return -1; return -1;
} }
cg = get_service_fd(CGROUP_YARD);
f = fopenat(cg, path, "w+"); f = fopenat(cg, path, "w+");
if (!f) { if (!f) {
pr_perror("Failed opening %s for writing\n", path); pr_perror("Failed opening %s for writing\n", path);
...@@ -970,9 +972,6 @@ static int prepare_cgroup_dir_properties(char *controller, CgroupDirEntry **ents ...@@ -970,9 +972,6 @@ static int prepare_cgroup_dir_properties(char *controller, CgroupDirEntry **ents
unsigned int n_ents) unsigned int n_ents)
{ {
unsigned int i, j; unsigned int i, j;
int cg;
cg = get_service_fd(CGROUP_YARD);
for (i = 0; i < n_ents; i++) { for (i = 0; i < n_ents; i++) {
CgroupDirEntry *e = ents[i]; CgroupDirEntry *e = ents[i];
...@@ -984,7 +983,7 @@ static int prepare_cgroup_dir_properties(char *controller, CgroupDirEntry **ents ...@@ -984,7 +983,7 @@ static int prepare_cgroup_dir_properties(char *controller, CgroupDirEntry **ents
*/ */
if (e->properties) { if (e->properties) {
for (j = 0; j < e->n_properties; ++j) { for (j = 0; j < e->n_properties; ++j) {
if (restore_cgroup_prop(e->properties[j], controller, e->path, cg) < 0) if (restore_cgroup_prop(e->properties[j], controller, e->path) < 0)
return -1; return -1;
} }
} }
......
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