core/group-util: merge two functions

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-01-18 01:13:26 -05:00
parent 64abe9aa3f
commit 3f98659cce

View file

@ -1277,9 +1277,9 @@ static int cgroup_to_unit(char *cgroup, char **unit){
return 0; return 0;
} }
int cg_pid_get_unit(pid_t pid, char **unit) { static int cg_pid_get(const char *prefix, pid_t pid, char **unit) {
int r; int r;
char *cgroup; char _cleanup_free_ *cgroup = NULL;
assert(pid >= 0); assert(pid >= 0);
assert(unit); assert(unit);
@ -1288,45 +1288,17 @@ int cg_pid_get_unit(pid_t pid, char **unit) {
if (r < 0) if (r < 0)
return r; return r;
if (!startswith(cgroup, "/system/")) { if (!startswith(cgroup, prefix))
free(cgroup);
return -ENOENT; return -ENOENT;
}
r = cgroup_to_unit(cgroup, unit); r = cgroup_to_unit(cgroup, unit);
if (r < 0){ return r;
free(cgroup); }
return r;
}
free(cgroup); int cg_pid_get_unit(pid_t pid, char **unit) {
return cg_pid_get("/system/", pid, unit);
return 0;
} }
int cg_pid_get_user_unit(pid_t pid, char **unit) { int cg_pid_get_user_unit(pid_t pid, char **unit) {
int r; return cg_pid_get("/user/", pid, unit);
char *cgroup;
assert(pid >= 0);
assert(unit);
r = cg_pid_get_cgroup(pid, NULL, &cgroup);
if (r < 0)
return r;
if (!startswith(cgroup, "/user/")) {
free(cgroup);
return -ENOENT;
}
r = cgroup_to_unit(cgroup, unit);
if (r < 0) {
free(cgroup);
return r;
}
free(cgroup);
return 0;
} }