summaryrefslogtreecommitdiff
path: root/kernel/pid.c
diff options
context:
space:
mode:
authorEmanuele Ghidoli <emanuele.ghidoli@toradex.com>2025-06-19 08:37:27 +0200
committerEmanuele Ghidoli <emanuele.ghidoli@toradex.com>2025-06-19 10:55:50 +0200
commit3bb604cef85fb366931a777a20579cc7c24b6c5c (patch)
tree855a4c90b2b093047060d9a5c5888a27e68e54cd /kernel/pid.c
parent1e78582cc49cd07d726ea073178625c1cbbed013 (diff)
parent58485ff1a74f6c5be9e7c6aafb7293e4337348e7 (diff)
Merge tag 'v6.1.141' into toradex_ti-linux-6.1.y
This is the 6.1.141 stable release Conflicts: drivers/spi/spi-cadence-quadspi.c Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Diffstat (limited to 'kernel/pid.c')
-rw-r--r--kernel/pid.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/kernel/pid.c b/kernel/pid.c
index 74834c04a081..8bce3aebc949 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -594,20 +594,15 @@ struct task_struct *pidfd_get_task(int pidfd, unsigned int *flags)
*/
int pidfd_create(struct pid *pid, unsigned int flags)
{
- int fd;
-
- if (!pid || !pid_has_task(pid, PIDTYPE_TGID))
- return -EINVAL;
+ int pidfd;
+ struct file *pidfd_file;
- if (flags & ~(O_NONBLOCK | O_RDWR | O_CLOEXEC))
- return -EINVAL;
-
- fd = anon_inode_getfd("[pidfd]", &pidfd_fops, get_pid(pid),
- flags | O_RDWR | O_CLOEXEC);
- if (fd < 0)
- put_pid(pid);
+ pidfd = pidfd_prepare(pid, flags, &pidfd_file);
+ if (pidfd < 0)
+ return pidfd;
- return fd;
+ fd_install(pidfd, pidfd_file);
+ return pidfd;
}
/**