chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Small cleanup
[elogind.git]
/
src
/
core
/
mount-setup.c
diff --git
a/src/core/mount-setup.c
b/src/core/mount-setup.c
index 89adb0b4a3445e34430a705a68024f47f005a792..4629808a7a0023d0a6fbe6ee5d1ac65f4b663a6f 100644
(file)
--- a/
src/core/mount-setup.c
+++ b/
src/core/mount-setup.c
@@
-211,9
+211,9
@@
int mount_setup_early(void) {
int mount_cgroup_controllers(char ***join_controllers) {
int r;
int mount_cgroup_controllers(char ***join_controllers) {
int r;
- FILE *f;
char buf[LINE_MAX];
char buf[LINE_MAX];
- Set *controllers;
+ _cleanup_set_free_free_ Set *controllers = NULL;
+ _cleanup_fclose_ FILE *f;
/* Mount all available cgroup controllers that are built into the kernel. */
/* Mount all available cgroup controllers that are built into the kernel. */
@@
-224,10
+224,8
@@
int mount_cgroup_controllers(char ***join_controllers) {
}
controllers = set_new(string_hash_func, string_compare_func);
}
controllers = set_new(string_hash_func, string_compare_func);
- if (!controllers) {
- r = log_oom();
- goto finish;
- }
+ if (!controllers)
+ return log_oom();
/* Ignore the header line */
(void) fgets(buf, sizeof(buf), f);
/* Ignore the header line */
(void) fgets(buf, sizeof(buf), f);
@@
-242,8
+240,7
@@
int mount_cgroup_controllers(char ***join_controllers) {
break;
log_error("Failed to parse /proc/cgroups.");
break;
log_error("Failed to parse /proc/cgroups.");
- r = -EIO;
- goto finish;
+ return -EIO;
}
if (!enabled) {
}
if (!enabled) {
@@
-251,18
+248,22
@@
int mount_cgroup_controllers(char ***join_controllers) {
continue;
}
continue;
}
- r = set_
put
(controllers, controller);
+ r = set_
consume
(controllers, controller);
if (r < 0) {
log_error("Failed to add controller to set.");
if (r < 0) {
log_error("Failed to add controller to set.");
- free(controller);
- goto finish;
+ return r;
}
}
for (;;) {
}
}
for (;;) {
- MountPoint p;
- char *controller, *where, *options;
+ MountPoint p = {
+ .what = "cgroup",
+ .type = "cgroup",
+ .flags = MS_NOSUID|MS_NOEXEC|MS_NODEV,
+ .mode = MNT_IN_CONTAINER,
+ };
char ***k = NULL;
char ***k = NULL;
+ _cleanup_free_ char *options = NULL, *controller;
controller = set_steal_first(controllers);
if (!controller)
controller = set_steal_first(controllers);
if (!controller)
@@
-279,14
+280,13
@@
int mount_cgroup_controllers(char ***join_controllers) {
for (i = *k, j = *k; *i; i++) {
if (!streq(*i, controller)) {
for (i = *k, j = *k; *i; i++) {
if (!streq(*i, controller)) {
- char *t;
+ char
_cleanup_free_
*t;
t = set_remove(controllers, *i);
if (!t) {
free(*i);
continue;
}
t = set_remove(controllers, *i);
if (!t) {
free(*i);
continue;
}
- free(t);
}
*(j++) = *i;
}
*(j++) = *i;
@@
-295,75
+295,36
@@
int mount_cgroup_controllers(char ***join_controllers) {
*j = NULL;
options = strv_join(*k, ",");
*j = NULL;
options = strv_join(*k, ",");
- if (!options) {
- free(controller);
- r = log_oom();
- goto finish;
- }
-
+ if (!options)
+ return log_oom();
} else {
options = controller;
controller = NULL;
}
} else {
options = controller;
controller = NULL;
}
- where = strappend("/sys/fs/cgroup/", options);
- if (!where) {
- free(options);
- r = log_oom();
- goto finish;
- }
-
- zero(p);
- p.what = "cgroup";
- p.where = where;
- p.type = "cgroup";
+ p.where = strappenda("/sys/fs/cgroup/", options);
p.options = options;
p.options = options;
- p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV;
- p.mode = MNT_IN_CONTAINER;
r = mount_one(&p, true);
r = mount_one(&p, true);
- free(controller);
- free(where);
-
- if (r < 0) {
- free(options);
- goto finish;
- }
+ if (r < 0)
+ return r;
if (r > 0 && k && *k) {
char **i;
for (i = *k; *i; i++) {
if (r > 0 && k && *k) {
char **i;
for (i = *k; *i; i++) {
- _cleanup_free_ char *t;
-
- t = strappend("/sys/fs/cgroup/", *i);
- if (!t) {
- r = log_oom();
- free(options);
- goto finish;
- }
+ char *t = strappenda("/sys/fs/cgroup/", *i);
r = symlink(options, t);
if (r < 0 && errno != EEXIST) {
log_error("Failed to create symlink %s: %m", t);
r = symlink(options, t);
if (r < 0 && errno != EEXIST) {
log_error("Failed to create symlink %s: %m", t);
- r = -errno;
- free(options);
- goto finish;
+ return -errno;
}
}
}
}
}
}
-
- free(options);
}
}
- r = 0;
-
-finish:
- set_free_free(controllers);
-
- fclose(f);
-
- return r;
+ return 0;
}
static int nftw_cb(
}
static int nftw_cb(