[PATCH 0/3] pidfd: add pidfd_prepare()

From: Christian Brauner
Date: Mon Mar 27 2023 - 14:23:06 EST


This adds the pidfd_prepare() helper which allows the caller to reserve
a pidfd number and allocates a new pidfd file that stashes the provided
struct pid.

This will allow us to remove places that either open code this
functionality e.g., during copy_process() or that currently call
pidfd_create() but then have to call close_fd() because there are still
failure points after pidfd_create() has been called.

Other functionality wants to make use of pidfd's as well and they need a
pidfd_prepare() internal api as well.

I've tested the fanotify and fork changes via LTP which provides
coverage for all the affected codepaths.

Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
---
Christian Brauner (3):
pid: add pidfd_prepare()
fork: use pidfd_prepare()
fanotify: use pidfd_prepare()

fs/notify/fanotify/fanotify_user.c | 13 ++++---
include/linux/pid.h | 1 +
kernel/fork.c | 12 +------
kernel/pid.c | 69 +++++++++++++++++++++++++++++++-------
4 files changed, 68 insertions(+), 27 deletions(-)
---
base-commit: 197b6b60ae7bc51dd0814953c562833143b292aa
change-id: 20230327-pidfd-file-api-8b28d68cf0a9