diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-09-03 14:56:26 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-09-04 09:07:30 +0200 |
commit | 569b19d8fedc4525a6c15f1a3ab9c15dcb7c694a (patch) | |
tree | 51983b5687c16e33cabfe773dd42b4b220a7c03b /src/basic | |
parent | util: add new uid_is_valid() call (diff) | |
download | systemd-569b19d8fedc4525a6c15f1a3ab9c15dcb7c694a.tar.xz systemd-569b19d8fedc4525a6c15f1a3ab9c15dcb7c694a.zip |
cgroup: move controller to dirname translation into join_path_legacy()
Let's simplify things a bit.
Diffstat (limited to 'src/basic')
-rw-r--r-- | src/basic/cgroup-util.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 74e1668a17..8299f6ffd5 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -460,20 +460,23 @@ static const char *controller_to_dirname(const char *controller) { return controller; } -static int join_path_legacy(const char *controller_dn, const char *path, const char *suffix, char **fs) { +static int join_path_legacy(const char *controller, const char *path, const char *suffix, char **fs) { + const char *dn; char *t = NULL; assert(fs); - assert(controller_dn); + assert(controller); + + dn = controller_to_dirname(controller); if (isempty(path) && isempty(suffix)) - t = strappend("/sys/fs/cgroup/", controller_dn); + t = strappend("/sys/fs/cgroup/", dn); else if (isempty(path)) - t = strjoin("/sys/fs/cgroup/", controller_dn, "/", suffix, NULL); + t = strjoin("/sys/fs/cgroup/", dn, "/", suffix, NULL); else if (isempty(suffix)) - t = strjoin("/sys/fs/cgroup/", controller_dn, "/", path, NULL); + t = strjoin("/sys/fs/cgroup/", dn, "/", path, NULL); else - t = strjoin("/sys/fs/cgroup/", controller_dn, "/", path, "/", suffix, NULL); + t = strjoin("/sys/fs/cgroup/", dn, "/", path, "/", suffix, NULL); if (!t) return -ENOMEM; @@ -509,8 +512,8 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch if (!controller) { char *t; - /* If no controller is specified, we assume only the - * path below the controller matters */ + /* If no controller is specified, we return the path + * *below* the controllers, without any prefix. */ if (!path && !suffix) return -EINVAL; @@ -537,14 +540,8 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch if (unified > 0) r = join_path_unified(path, suffix, fs); - else { - const char *dn; - - dn = controller_to_dirname(controller); - - r = join_path_legacy(dn, path, suffix, fs); - } - + else + r = join_path_legacy(controller, path, suffix, fs); if (r < 0) return r; |