Merge 6e4dc3d592
("Merge tag 'for-linus-5.10-1' of git://github.com/cminyard/linux-ipmi") into android-mainline
Steps on the way to 5.10-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Idbd0577a495237bf5628333110e2c98a77b39c77
This commit is contained in:
12
kernel/pid.c
12
kernel/pid.c
@@ -43,6 +43,7 @@
|
||||
#include <linux/sched/task.h>
|
||||
#include <linux/idr.h>
|
||||
#include <net/sock.h>
|
||||
#include <uapi/linux/pidfd.h>
|
||||
|
||||
struct pid init_struct_pid = {
|
||||
.count = REFCOUNT_INIT(1),
|
||||
@@ -523,7 +524,8 @@ struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
|
||||
/**
|
||||
* pidfd_create() - Create a new pid file descriptor.
|
||||
*
|
||||
* @pid: struct pid that the pidfd will reference
|
||||
* @pid: struct pid that the pidfd will reference
|
||||
* @flags: flags to pass
|
||||
*
|
||||
* This creates a new pid file descriptor with the O_CLOEXEC flag set.
|
||||
*
|
||||
@@ -533,12 +535,12 @@ struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
|
||||
* Return: On success, a cloexec pidfd is returned.
|
||||
* On error, a negative errno number will be returned.
|
||||
*/
|
||||
static int pidfd_create(struct pid *pid)
|
||||
static int pidfd_create(struct pid *pid, unsigned int flags)
|
||||
{
|
||||
int fd;
|
||||
|
||||
fd = anon_inode_getfd("[pidfd]", &pidfd_fops, get_pid(pid),
|
||||
O_RDWR | O_CLOEXEC);
|
||||
flags | O_RDWR | O_CLOEXEC);
|
||||
if (fd < 0)
|
||||
put_pid(pid);
|
||||
|
||||
@@ -566,7 +568,7 @@ SYSCALL_DEFINE2(pidfd_open, pid_t, pid, unsigned int, flags)
|
||||
int fd;
|
||||
struct pid *p;
|
||||
|
||||
if (flags)
|
||||
if (flags & ~PIDFD_NONBLOCK)
|
||||
return -EINVAL;
|
||||
|
||||
if (pid <= 0)
|
||||
@@ -577,7 +579,7 @@ SYSCALL_DEFINE2(pidfd_open, pid_t, pid, unsigned int, flags)
|
||||
return -ESRCH;
|
||||
|
||||
if (pid_has_task(p, PIDTYPE_TGID))
|
||||
fd = pidfd_create(p);
|
||||
fd = pidfd_create(p, flags);
|
||||
else
|
||||
fd = -EINVAL;
|
||||
|
||||
|
Reference in New Issue
Block a user