From patchwork Thu Apr 3 14:09:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Brauner X-Patchwork-Id: 14036733 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 510C724EF7B; Thu, 3 Apr 2025 14:09:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689369; cv=none; b=KRBOfekoGQ429fPE9mQUW4vCQEi1x2elOMTaMwbYDRf/mGTzCadUxpJZQOGFV+ONktcSvaoXkmKfSiRk9lP3sOm5WRxVdvLqhNUe1BDGiC+IGrcV/Ek0k26hCgWnsdNYTDhWAVAl9OvuJCz/3vmvHapwCvdg2k+GOk8ez8v5L6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689369; c=relaxed/simple; bh=ZzuxcT1XLOPfDbGYVrNXdQHSopuVtW+vn8bRWuQfVV8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j19FdaYbpD0cpJrZB77gMpzVztFNxQpjq20Z8vv9ThQMsEnkRLxg7LDAxBBDSy+BGddFtla4dn5ZbW1X1Hazhz7lGTnOt/v+NCkYjmAo6HDCNWurO+yLDtmq/Gc7KSL2o8Qdq8+gwEO+tmSgazJcygRDXRlETIe8bjE+vC5XY10= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WOUGLWj8; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WOUGLWj8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1058C4CEE7; Thu, 3 Apr 2025 14:09:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743689368; bh=ZzuxcT1XLOPfDbGYVrNXdQHSopuVtW+vn8bRWuQfVV8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=WOUGLWj8a0j65A8qo40tEyTE03xemv3Gt1dfSjGByZ6PYe/Sujyb2kY25M9ALoHSi vZaA8VsDVA8LKoCtCzfHI/532+p0Rbm5MZtZsaDEIq2uW+bEHDDHEIivK1g+q6cmqI XyFc/3/sfCbcIg6Yfyz11SF1c0EG7CF++6N5pBbKoap+hnYj4wigEs+K5otcfnfIcu 1nbSBWJj3Z2UehWP13bmaxphTTHQdvEKyMKX/GVutgb4qYkDqs8iX+w+GfCQImfiJG 0bz+R0vj5JLKh9SQRbCUiLjdXAmQxa2o9v8dI7xKIenQN51JwVvSzPFM41pL7h+d0v We04Qia7sa+SA== From: Christian Brauner Date: Thu, 03 Apr 2025 16:09:01 +0200 Subject: [PATCH RFC 1/4] selftests/pidfd: adapt to recent changes Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250403-work-pidfd-fixes-v1-1-a123b6ed6716@kernel.org> References: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> In-Reply-To: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> To: Oleg Nesterov Cc: linux-fsdevel@vger.kernel.org, Jeff Layton , Lennart Poettering , Daan De Meyer , Mike Yuan , linux-kernel@vger.kernel.org, Christian Brauner X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2224; i=brauner@kernel.org; h=from:subject:message-id; bh=ZzuxcT1XLOPfDbGYVrNXdQHSopuVtW+vn8bRWuQfVV8=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaS/mzYlM4k7IH75o+0x6RbMCXe1BXLS9/g+sj+U0xm04 55Cvty/jlIWBjEuBlkxRRaHdpNwueU8FZuNMjVg5rAygQxh4OIUgIkoVDD8937657KArn7emrJD O3RWdOupTpz77+tppeTvTZ5sJ986HmdkeLbZI71buXSuwHeX9pQPAXL3F5m9Up06XXCfzKRv2tY KDAA= X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Adapt to changes in commit 9133607de37a ("exit: fix the usage of delay_group_leader->exit_code in do_notify_parent() and pidfs_exit()"). Even if the thread-group leader exited early and succesfully it's exit status will only be reported once the whole thread-group has exited and it will share the exit code of the thread-group. So if the thread-group was SIGKILLed the thread-group leader will also be reported as having been SIGKILLed. Signed-off-by: Christian Brauner --- tools/testing/selftests/pidfd/pidfd_info_test.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/pidfd/pidfd_info_test.c b/tools/testing/selftests/pidfd/pidfd_info_test.c index 1758a1b0457b..accfd6bdc539 100644 --- a/tools/testing/selftests/pidfd/pidfd_info_test.c +++ b/tools/testing/selftests/pidfd/pidfd_info_test.c @@ -362,9 +362,9 @@ TEST_F(pidfd_info, thread_group) ASSERT_EQ(ioctl(pidfd_leader, PIDFD_GET_INFO, &info), 0); ASSERT_FALSE(!!(info.mask & PIDFD_INFO_CREDS)); ASSERT_TRUE(!!(info.mask & PIDFD_INFO_EXIT)); - /* The thread-group leader exited successfully. Only the specific thread was SIGKILLed. */ - ASSERT_TRUE(WIFEXITED(info.exit_code)); - ASSERT_EQ(WEXITSTATUS(info.exit_code), 0); + /* Even though the thread-group exited successfully it will still report the group exit code. */ + ASSERT_TRUE(WIFSIGNALED(info.exit_code)); + ASSERT_EQ(WTERMSIG(info.exit_code), SIGKILL); /* * Retrieve exit information for the thread-group leader via the @@ -375,9 +375,9 @@ TEST_F(pidfd_info, thread_group) ASSERT_FALSE(!!(info2.mask & PIDFD_INFO_CREDS)); ASSERT_TRUE(!!(info2.mask & PIDFD_INFO_EXIT)); - /* The thread-group leader exited successfully. Only the specific thread was SIGKILLed. */ - ASSERT_TRUE(WIFEXITED(info2.exit_code)); - ASSERT_EQ(WEXITSTATUS(info2.exit_code), 0); + /* Even though the thread-group exited successfully it will still report the group exit code. */ + ASSERT_TRUE(WIFSIGNALED(info2.exit_code)); + ASSERT_EQ(WTERMSIG(info2.exit_code), SIGKILL); /* Retrieve exit information for the thread. */ info.mask = PIDFD_INFO_CGROUPID | PIDFD_INFO_EXIT; From patchwork Thu Apr 3 14:09:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Brauner X-Patchwork-Id: 14036734 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 42E502505AF; Thu, 3 Apr 2025 14:09:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689371; cv=none; b=iBeo8/baItajWTQMIZS/EyS0vTIa8cToC43n9NqnLUQrRxtlgjOXvTERKftMvN2I9hawHexRmaTMj1skuh3OjFEBhs+nkC+ZqQ0psNshiRGr7T0lFCNiYQ3szDqiF/fRmBPdbCdIaxhInjocI22dPZfhCNpAy/j0n0e5DGeNhFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689371; c=relaxed/simple; bh=8+GYuJJORNXwm8msrV6LzgUs+zEbzIX7ocSGiHQNjOw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RdfQkOp9cov4YobmNH9BbXqK1tgcE9oslKVdV81stAjAlp6pcPzGDVHCNeniGZ4us7Dt3UphvhcHy7u48ajDUgEsb/O1tzASQ1S0/qw0X7HL+zREComsUHYa3DpjeMlqKAZ5Gr+/diqUx7mhNYUdmjk1i3gSbIe6gzD3q8icH1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=slYIak7Q; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="slYIak7Q" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 46270C4AF09; Thu, 3 Apr 2025 14:09:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743689371; bh=8+GYuJJORNXwm8msrV6LzgUs+zEbzIX7ocSGiHQNjOw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=slYIak7QPSVSgUDzicllo5BtQhUjPzDp+ZqpUWSN61d9mdeVlJ0PknyrFoANP/ReV C1wnya5XKEMdEs/moTMXhve8B+cIYVsHnYy1Ajzg7x43LG9JbUo9Zj5dMDEcQTOrRk 02Wr4MJwhj7lXrpUOXtBtJL69huQzfwH7q2g1CylcGukI0DTYojh4jGxWpSP77Maay /hwCZcXM0TSIRR9MDxlZxVOTVsqlQGqiCV/jRVlTsPzhEMo9K79OY0Lrqy1pwC5YvE HQAxP9KE39vIydLG27kezwJudCnYmmgQdZIZSxCGE2Rob91R9mRHMzslKpQOY+25B/ OJeUvj/ts+77A== From: Christian Brauner Date: Thu, 03 Apr 2025 16:09:02 +0200 Subject: [PATCH RFC 2/4] pidfd: remove unneeded NULL check from pidfd_prepare() Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250403-work-pidfd-fixes-v1-2-a123b6ed6716@kernel.org> References: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> In-Reply-To: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> To: Oleg Nesterov Cc: linux-fsdevel@vger.kernel.org, Jeff Layton , Lennart Poettering , Daan De Meyer , Mike Yuan , linux-kernel@vger.kernel.org, Christian Brauner X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=678; i=brauner@kernel.org; h=from:subject:message-id; bh=8+GYuJJORNXwm8msrV6LzgUs+zEbzIX7ocSGiHQNjOw=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaS/mzZlyc0JT09Enl73/YrT7SOTnfYH3C4seanJf/zQn MPBAaseqHSUsjCIcTHIiimyOLSbhMst56nYbJSpATOHlQlkCAMXpwBMZM9zhr+yV07/dDxw4kxc zrx1vffUPXPKu9y5Ix6+cjMs7nA5XnKUkeHlV5OItMfX++8cWRGzQJiBQz+4p6jyT1xE4EdWqds 3tvICAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 None of the caller actually pass a NULL pid in there. Signed-off-by: Christian Brauner --- kernel/fork.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index c4b26cd8998b..182ec2e9087d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2110,7 +2110,7 @@ int pidfd_prepare(struct pid *pid, unsigned int flags, struct file **ret) { bool thread = flags & PIDFD_THREAD; - if (!pid || !pid_has_task(pid, thread ? PIDTYPE_PID : PIDTYPE_TGID)) + if (!pid_has_task(pid, thread ? PIDTYPE_PID : PIDTYPE_TGID)) return -EINVAL; return __pidfd_prepare(pid, flags, ret); From patchwork Thu Apr 3 14:09:03 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Brauner X-Patchwork-Id: 14036735 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D24DD2505DD; Thu, 3 Apr 2025 14:09:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689373; cv=none; b=AFoY0BJ/RwWNymQYjwslrJvqln6/K86obaAOOQhp8LqBFZOOs2g7UpeMxqKZp0K39yiz85cxCNX5M5wB4VsTzdP4CKpfKPwwN2PcGCJzUFbykWnniT4vaEgiJLtpY8q4gnNoVbumCgvnmCH+V1xobLZUv/MsSPGq4UTu5uXmTvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689373; c=relaxed/simple; bh=QvbAwm5Gaz6F+109uenJnQiiApV7n787OOSRTih5yF8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c52+iy8GF4y76QgZAGpJFpWK9Bz65sZIzMvBvnWiKGuVWN6PRgXBynrKAfT1ajZV1ghdKjFigxvwH9DFIZvMPf5J9DmjqVraQzz8ALujJWtIIMIwpnlOLljyyllQS6Ll4b4cShR19uXsGsaJzOjGXsIYU7k0mBevdZhfBtrlpao= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IpwD7OJQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IpwD7OJQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F59FC4CEE3; Thu, 3 Apr 2025 14:09:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743689373; bh=QvbAwm5Gaz6F+109uenJnQiiApV7n787OOSRTih5yF8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=IpwD7OJQT5VXBFYeT2NyeLzc5WgRnX/cZiMjKEZtHIqkBo57FipdQ9b5mXuv/DjuG XjnO/Wr4OrPGSMsGBz5nyYu1LfJJCKcPxk164zMX5D12Mi4LxgyHOUmcDl2ou/wIKy 4WB0TRSouWlP/5PnwGWIj6Ml8RvwwD9qLyCFUWmp9yUK3eNnLBAtIbsZDROdc5MxXC eJeT7buylxcYzyJqC/oXHnnhbT30xbVAe3NJ94hCbCMReVdPhOX6ifSfVUU6FQAGqD NHLiTxZFO4niIw1RBZUmFq63NN3vMW/xU5g29+ocWRzQnA22VhqMfX/PeeE+mvv82W CXzPrqQul0vYg== From: Christian Brauner Date: Thu, 03 Apr 2025 16:09:03 +0200 Subject: [PATCH RFC 3/4] pidfd: improve uapi when task isn't found Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250403-work-pidfd-fixes-v1-3-a123b6ed6716@kernel.org> References: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> In-Reply-To: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> To: Oleg Nesterov Cc: linux-fsdevel@vger.kernel.org, Jeff Layton , Lennart Poettering , Daan De Meyer , Mike Yuan , linux-kernel@vger.kernel.org, Christian Brauner X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2227; i=brauner@kernel.org; h=from:subject:message-id; bh=QvbAwm5Gaz6F+109uenJnQiiApV7n787OOSRTih5yF8=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaS/mzblR+bzRX9LHeJ6X0w62X35nHBM2L0farp3A1mn+ zB86Hk4r6OUhUGMi0FWTJHFod0kXG45T8Vmo0wNmDmsTCBDGLg4BWAiIiaMDEcY2OSW9BiznN2+ VFcqfrW1E9+s09tOXPW0VX3WIJJU+Yrhfy63iVgg29tJl9PK5++2kv0cz65qv/pvWtHp1ZUNaz5 JMQIA X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 We currently report EINVAL whenever a struct pid has no tasked attached anymore thereby conflating two concepts: (1) The task has already been reaped. (2) The caller requested a pidfd for a thread-group leader but the pid actually references a struct pid that isn't used as a thread-group leader. This is causing issues for non-threaded workloads as in [1]. This patch tries to allow userspace to distinguish between (1) and (2). This is racy of course but that shouldn't matter. Link: https://github.com/systemd/systemd/pull/36982 [1] Signed-off-by: Christian Brauner Reviewed-by: Oleg Nesterov --- kernel/fork.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index 182ec2e9087d..0fe54fcd11b3 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2108,10 +2108,35 @@ static int __pidfd_prepare(struct pid *pid, unsigned int flags, struct file **re */ int pidfd_prepare(struct pid *pid, unsigned int flags, struct file **ret) { - bool thread = flags & PIDFD_THREAD; + int err = 0; - if (!pid_has_task(pid, thread ? PIDTYPE_PID : PIDTYPE_TGID)) - return -EINVAL; + if (!(flags & PIDFD_THREAD)) { + /* + * If this is struct pid isn't used as a thread-group + * leader pid but the caller requested to create a + * thread-group leader pidfd then report ENOENT to the + * caller as a hint. + */ + if (!pid_has_task(pid, PIDTYPE_TGID)) + err = -ENOENT; + } + + /* + * If this wasn't a thread-group leader struct pid or the task + * got reaped in the meantime report -ESRCH to userspace. + * + * This is racy of course. This could've not been a thread-group + * leader struct pid and we set ENOENT above but in the meantime + * the task got reaped. Or there was a multi-threaded-exec by a + * subthread and we were a thread-group leader but now got + * killed. All of that doesn't matter since the task has already + * been reaped that distinction is meaningless to userspace so + * just report ESRCH. + */ + if (!pid_has_task(pid, PIDTYPE_PID)) + err = -ESRCH; + if (err) + return err; return __pidfd_prepare(pid, flags, ret); } From patchwork Thu Apr 3 14:09:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Brauner X-Patchwork-Id: 14036736 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18FE7250BFA; Thu, 3 Apr 2025 14:09:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689376; cv=none; b=qFhg9otyEsbZlVenVuLNRlBpcS2wx8fVLoBN5gRTIj1Z10XyFlSIuKeblP/qvSrXHn3HSpOdvywsgRiaepLgs1WzesDYftbGQdy/kzITsmU0NzsqRnbQcGrUViBh5+m9rzbHPZo9e4+oU3zKerlVLHcE2vEHymY8/T9QMD6KUbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743689376; c=relaxed/simple; bh=53J++gz+TCTYRmafMVzYi//xpml2Oz7uWzyQxKxRxJA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=W4L0Un7gzYbUDyL5jXd4U7hHFnR8nckHIwFArL829LxJJpHgNiR1D8ZhRTRCCXtTG3yOWZ5iZEJG6/yJGZiv3+TkbdSUpdsAy8l55kwBLIiMQxlJYyaP1y15pnjoGt/aUKVT4uQchOwvLIHjL4xmhbSJ4CEG8GxkUpYQpTsiM2o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=frt0k7Yg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="frt0k7Yg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA545C4CEE7; Thu, 3 Apr 2025 14:09:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743689375; bh=53J++gz+TCTYRmafMVzYi//xpml2Oz7uWzyQxKxRxJA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=frt0k7YgIGe91bFv8s4Me3sKaKdIRZayJRHNcQINy6q6p/Oxz5TZYAbXEoUCMM5Fn spsFfP9zETgVY6VYSC4eOCeZ2x5FjuFNMrYADtYvLMBV6Xl1ZFU69/ZEL7SzqkACY0 bzQ37gZ93AfTrz1wP9Oo3g2DZGRCrmb7afPCEYbfCjXneFHXUxDu5sstIk56CBRSF2 +FKrKEOiOGjujcXYh+pxeKLaeJIUCOdv33TAGtejluCTpcuM3SR0/Jyrv50nEKUlWT a1v/E1G7A2QVeND4c9nz/GzNaq8XVaj31b7tv0J17xWGazacvSmkr+VTfQJSIn/byA R6mqAO43zDYYA== From: Christian Brauner Date: Thu, 03 Apr 2025 16:09:04 +0200 Subject: [PATCH RFC 4/4] selftest/pidfd: add test for thread-group leader pidfd open for thread Precedence: bulk X-Mailing-List: linux-fsdevel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250403-work-pidfd-fixes-v1-4-a123b6ed6716@kernel.org> References: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> In-Reply-To: <20250403-work-pidfd-fixes-v1-0-a123b6ed6716@kernel.org> To: Oleg Nesterov Cc: linux-fsdevel@vger.kernel.org, Jeff Layton , Lennart Poettering , Daan De Meyer , Mike Yuan , linux-kernel@vger.kernel.org, Christian Brauner X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=921; i=brauner@kernel.org; h=from:subject:message-id; bh=53J++gz+TCTYRmafMVzYi//xpml2Oz7uWzyQxKxRxJA=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMaS/mzYl8ti8+3dP9BZ6LSq99O/ttW2dF1M/8v+YXjxVw 4ArxeP45o5SFgYxLgZZMUUWh3aTcLnlPBWbjTI1YOawMoEMYeDiFICJSDcwMhw9KDxZ5ZDNi3nT rJx00sPOu6osMIzLe9A/mXPWTLOAw9cZ/inc28N3Z/f5/9en3kixfPJ4ITdLoJy+s87licVn2v+ ULWMCAA== X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Verify that we report ENOENT when userspace tries to create a thread-group leader pidfd for a thread pidfd that isn't a thread-group leader. Signed-off-by: Christian Brauner --- tools/testing/selftests/pidfd/pidfd_info_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/pidfd/pidfd_info_test.c b/tools/testing/selftests/pidfd/pidfd_info_test.c index accfd6bdc539..a0eb6e81eaa2 100644 --- a/tools/testing/selftests/pidfd/pidfd_info_test.c +++ b/tools/testing/selftests/pidfd/pidfd_info_test.c @@ -299,6 +299,7 @@ TEST_F(pidfd_info, thread_group) /* Opening a thread as a thread-group leader must fail. */ pidfd_thread = sys_pidfd_open(pid_thread, 0); ASSERT_LT(pidfd_thread, 0); + ASSERT_EQ(errno, ENOENT); /* Opening a thread as a PIDFD_THREAD must succeed. */ pidfd_thread = sys_pidfd_open(pid_thread, PIDFD_THREAD);