fanotify: use pidfd_prepare()
authorChristian Brauner <brauner@kernel.org>
Mon, 27 Mar 2023 18:22:53 +0000 (20:22 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 3 Apr 2023 09:16:57 +0000 (11:16 +0200)
commiteee3a0e93924f2aab8ebaa7f2e26fd0f3b33f9e7
tree5a4692d7b26c242aa85b806fc66897e23426bab4
parentca7707f5430ad6b1c9cb7cee0a7f67d69328bb2d
fanotify: use pidfd_prepare()

We generally try to avoid installing a file descriptor into the caller's
file descriptor table just to close it again via close_fd() in case an
error occurs. Instead we reserve a file descriptor but don't install it
into the caller's file descriptor table yet. If we fail for other,
unrelated reasons we can just close the reserved file descriptor and if
we make it past all meaningful error paths we just install it. Fanotify
gets this right already for one fd type but not for pidfds.

Use the new pidfd_prepare() helper to reserve a pidfd and a pidfd file
and switch to the more common fd allocation and installation pattern.

Acked-by: Jan Kara <jack@suse.cz>
Message-Id: <20230327-pidfd-file-api-v1-3-5c0e9a3158e4@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/notify/fanotify/fanotify_user.c