From: Lennart Poettering Date: Mon, 6 Jan 2025 10:23:08 +0000 (+0100) Subject: basic: port various pidfd/pidref helpers to PIDFD_GET_INFO and PIDFD_GET_*_NAMESPACE... X-Git-Tag: v258-rc1~1704 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=336acebc77eb7cb70b26466095764169a8b11134;p=thirdparty%2Fsystemd.git basic: port various pidfd/pidref helpers to PIDFD_GET_INFO and PIDFD_GET_*_NAMESPACE (#35242) Supersedes #35308 (cherry-picked one commit and replaced the rest) (I left a few comments that's folded by GitHub. Please make sure to check them too.) --- 336acebc77eb7cb70b26466095764169a8b11134 diff --cc src/basic/cgroup-util.c index 25dcab91fc5,1d2faa7393f..a5b9829f94e --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@@ -839,9 -860,11 +860,13 @@@ int cg_pidref_get_path(const char *cont if (!pidref_is_set(pidref)) return -ESRCH; + if (pidref_is_remote(pidref)) + return -EREMOTE; + // XXX: Ideally we'd use pidfd_get_cgroupid() + cg_path_from_cgroupid() here, to extract this + // bit of information from pidfd directly. However, the latter requires privilege and it's + // not entirely clear how to handle cgroups from outer namespace. + r = cg_pid_get_path(controller, pidref->pid, &path); if (r < 0) return r;