lkml.org 
[lkml]   [2019]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] pidfd: verify task is alive when printing fdinfo
On 10/15, Christian Brauner wrote:
>
> +static inline bool task_alive(struct pid *pid)
> +{
> + bool alive = true;
> +
> + rcu_read_lock();
> + if (!pid_task(pid, PIDTYPE_PID))
> + alive = false;
> + rcu_read_unlock();
> +
> + return alive;
> +}

Well, the usage of rcu_read_lock/unlock looks confusing to me...

I mean, this helper does not need rcu lock at all. Except
rcu_dereference_check() will complain.

static inline bool task_alive(struct pid *pid)
{
bool alive;

/* shut up rcu_dereference_check() */
rcu_lock_acquire(&rcu_lock_map);
alive = !!pid_task(pid, PIDTYPE_PID));
rcu_lock_release(&rcu_lock_map);

return alive;
}

looks more clear imo.

But in fact I'd suggest to simply use !hlist_empty(&pid->tasks[PIDTYPE_PID])
in pidfd_show_fdinfo() and do not add a new helper.

Oleg.

\
 
 \ /
  Last update: 2019-10-15 16:45    [W:0.205 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site