From 0df46f89086c12684144902df04478683c9e4905 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 8 Jan 2025 10:57:50 +0100 Subject: [PATCH] =?utf8?q?pidref:=20drop=20support=20for=20kernels=20lacki?= =?utf8?q?ng=20waitid(P=5FPIDFD,=20=E2=80=A6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Our baseline is not 5.4, which is where P_PIDFD was introduced. --- src/basic/pidref.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/basic/pidref.c b/src/basic/pidref.c index 53992aa3800..bc3e96f4266 100644 --- a/src/basic/pidref.c +++ b/src/basic/pidref.c @@ -401,22 +401,17 @@ int pidref_wait(const PidRef *pidref, siginfo_t *ret, int options) { return -ECHILD; siginfo_t si = {}; - - if (pidref->fd >= 0) { + if (pidref->fd >= 0) r = RET_NERRNO(waitid(P_PIDFD, pidref->fd, &si, options)); - if (r >= 0) { - if (ret) - *ret = si; - return r; - } - if (r != -EINVAL) /* P_PIDFD was added in kernel 5.4 only */ - return r; - } + else + r = RET_NERRNO(waitid(P_PID, pidref->pid, &si, options)); + if (r < 0) + return r; - r = RET_NERRNO(waitid(P_PID, pidref->pid, &si, options)); - if (r >= 0 && ret) + if (ret) *ret = si; - return r; + + return 0; } int pidref_wait_for_terminate(const PidRef *pidref, siginfo_t *ret) { -- 2.47.3