[PATCH net-next v3 0/7] allow reaped pidfds receive in SCM_PIDFD
From: Alexander Mikhalitsyn <hidden>
Date: 2025-07-03 22:22:24
Also in:
lkml
This is a logical continuation of a story from [1], where Christian extented SO_PEERPIDFD to allow getting pidfds for a reaped tasks. Git tree (based on vfs/vfs-6.17.pidfs): v3: https://github.com/mihalicyn/linux/commits/scm_pidfd_stale.v3 current: https://github.com/mihalicyn/linux/commits/scm_pidfd_stale Changelog for version 3: - rename __scm_replace_pid() to scm_replace_pid() [ as Kuniyuki suggested ] - ("af_unix/scm: fix whitespace errors") commit introduced [ as Kuniyuki suggested ] - don't stash pidfs dentry for netlink case [ as Kuniyuki suggested ] - splited whitespace changes [ as Kuniyuki suggested ] - removed unix_set_pid_to_skb() to simplify changes [ as Kuniyuki suggested ] Changelog for version 2: - renamed __skb_set_pid() -> unix_set_pid_to_skb() [ as Kuniyuki suggested ] - get rid of extra helper (__scm_set_cred()) I've introduced before [ as Kuniyuki suggested ] - s/__inline__/inline/ for functions I touched [ as Kuniyuki suggested ] - get rid of chunk in unix_destruct_scm() with NULLifying UNIXCB(skb).pid [ as Kuniyuki suggested ] - added proper error handling in scm_send() for scm_set_cred() return value [ found by me during rework ] - don't do get_pid() in __scm_replace_pid() [ as Kuniyuki suggested ] - move __scm_replace_pid() from scm.h to scm.c [ as Kuniyuki suggested ] - fixed kdoc for unix_maybe_add_creds() [ thanks to Kuniyuki's review ] - added RWB tags from Christian and Kuniyuki Links to previous versions: v2: https://lore.kernel.org/netdev/20250701083922.97928-1-aleksandr.mikhalitsyn@canonical.com (local) tree: https://github.com/mihalicyn/linux/commits/scm_pidfd_stale.v2 v1: https://lore.kernel.org/netdev/20250629214449.14462-1-aleksandr.mikhalitsyn@canonical.com (local) tree: https://github.com/mihalicyn/linux/commits/scm_pidfd_stale.v1 /!\ Notice Series based on https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=vfs-6.17.pidfs It does not use pidfs_get_pid()/pidfs_put_pid() API as these were removed in a scope of [2]. I've checked that net-next branch currently (still) has these obsolete functions, but it will eventually include changes from [2], so it's not a big problem. Link: https://lore.kernel.org/all/20250425-work-pidfs-net-v2-0-450a19461e75@kernel.org/ (local) [1] Link: https://lore.kernel.org/all/20250618-work-pidfs-persistent-v2-0-98f3456fd552@kernel.org/ (local) [2] Cc: linux-kernel@vger.kernel.org Cc: netdev@vger.kernel.org Cc: "David S. Miller" <davem@davemloft.net> Cc: Eric Dumazet <edumazet@google.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Paolo Abeni <pabeni@redhat.com> Cc: Willem de Bruijn <willemb@google.com> Cc: Leon Romanovsky <leon@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Christian Brauner <brauner@kernel.org> Cc: Kuniyuki Iwashima <kuniyu@google.com> Cc: Lennart Poettering <redacted> Cc: Luca Boccassi <redacted> Cc: David Rheinsberg <david@readahead.eu> Alexander Mikhalitsyn (7): af_unix: rework unix_maybe_add_creds() to allow sleep af_unix: introduce unix_skb_to_scm helper af_unix: introduce and use scm_replace_pid() helper af_unix/scm: fix whitespace errors af_unix: stash pidfs dentry when needed af_unix: enable handing out pidfds for reaped tasks in SCM_PIDFD selftests: net: extend SCM_PIDFD test to cover stale pidfds include/net/scm.h | 4 +- net/core/scm.c | 32 ++- net/unix/af_unix.c | 57 +++-- .../testing/selftests/net/af_unix/scm_pidfd.c | 217 ++++++++++++++---- 4 files changed, 247 insertions(+), 63 deletions(-) -- 2.43.0