On Wed, Oct 16, 2019 at 06:24:09PM +0200, Oleg Nesterov wrote: > On 10/16, Christian Brauner wrote: > > > > +static inline bool task_alive(struct pid *pid, enum pid_type type) > > +{ > > + return !hlist_empty(&pid->tasks[type]); > > +} > > So you decided to add a helper ;) OK, but note that its name is very > confusing and misleading. Even more than pid_alive() we already have. That's why I chose that name. This is the second time I get bitten by taking inspiration from prior naming examples. :) > > What does "alive" actually mean? Say, task_alive(pid, PIDTYPE_SID) == F > after fork(). Then it becomes T if this task does setsid(). Yes, that annoyed me to. If you think about pidfd_open() you have a similar problem. The question we are asking in pidfd_open() is not task_alive() but rather was-this-pid-used-as. > > And why task_ if it accepts pid+pid_type? May be pid_has_task() or > something like this... Given what I said above that might be a decent name. > > OK, since I can't suggest a better name I won't really argue. Feel free > to add my reviewed-by to this series. No, naming is important. Thanks for being picky about that too and I'll happily resend. :) Thanks! Christian