mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
cgroup: port some code over to path_startswith_full()
This commit is contained in:
@@ -959,13 +959,12 @@ int cg_get_root_path(char **ret_path) {
|
||||
}
|
||||
|
||||
int cg_shift_path(const char *cgroup, const char *root, const char **ret_shifted) {
|
||||
_cleanup_free_ char *rt = NULL;
|
||||
char *p;
|
||||
int r;
|
||||
|
||||
assert(cgroup);
|
||||
assert(ret_shifted);
|
||||
|
||||
_cleanup_free_ char *rt = NULL;
|
||||
if (!root) {
|
||||
/* If the root was specified let's use that, otherwise
|
||||
* let's determine it from PID 1 */
|
||||
@@ -977,12 +976,7 @@ int cg_shift_path(const char *cgroup, const char *root, const char **ret_shifted
|
||||
root = rt;
|
||||
}
|
||||
|
||||
p = path_startswith(cgroup, root);
|
||||
if (p && p > cgroup)
|
||||
*ret_shifted = p - 1;
|
||||
else
|
||||
*ret_shifted = cgroup;
|
||||
|
||||
*ret_shifted = path_startswith_full(cgroup, root, PATH_STARTSWITH_RETURN_LEADING_SLASH) ?: cgroup;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -2808,19 +2808,13 @@ static int unit_prune_cgroup_via_bus(Unit *u) {
|
||||
return -EOWNERDEAD;
|
||||
|
||||
/* Determine this unit's cgroup path relative to our cgroup root */
|
||||
const char *pp = path_startswith(crt->cgroup_path, u->manager->cgroup_root);
|
||||
const char *pp = path_startswith_full(
|
||||
crt->cgroup_path,
|
||||
u->manager->cgroup_root,
|
||||
PATH_STARTSWITH_RETURN_LEADING_SLASH);
|
||||
if (!pp)
|
||||
return -EINVAL;
|
||||
|
||||
_cleanup_free_ char *absolute = NULL;
|
||||
if (!path_is_absolute(pp)) { /* RemoveSubgroupFromUnit() wants an absolute path */
|
||||
absolute = strjoin("/", pp);
|
||||
if (!absolute)
|
||||
return -ENOMEM;
|
||||
|
||||
pp = absolute;
|
||||
}
|
||||
|
||||
r = bus_call_method(u->manager->system_bus,
|
||||
bus_systemd_mgr,
|
||||
"RemoveSubgroupFromUnit",
|
||||
|
||||
Reference in New Issue
Block a user