Re: [PATCH v1 1/2] Add polling support to pidfd

From: Joel Fernandes
Date: Mon Apr 29 2019 - 10:07:48 EST


On Mon, Apr 29, 2019 at 10:02:45AM -0400, Joel Fernandes wrote:
> On Sun, Apr 28, 2019 at 06:24:06PM +0200, Oleg Nesterov wrote:
[snip]
> > > > +{
> > > > + struct pid *pid;
> > > > +
> > > > + lockdep_assert_held(&tasklist_lock);
> > > > +
> > > > + pid = get_task_pid(task, PIDTYPE_PID);
> > > > + wake_up_all(&pid->wait_pidfd);
> > > > + put_pid(pid);
> >
> > Why get/put?
>
> Yes, pid_task() should do it. Will update it. Thanks!

I spoke too soon. We need the task's pid of type PIDTYPE_PID. How else can we
get it? This does an atomic_inc on the pid->count, so we need to put_pid()
after we are done with it. Did I miss something?

thanks,

- Joel