On 04/11, Christian Brauner wrote: > > > Looking close at this. Why is: > > > > if (type == PIDTYPE_PID) { > > WARN_ON_ONCE(pid_has_task(pid, PIDTYPE_PID)); > > wake_up_all(&pid->wait_pidfd); > > } > > > > located in __change_pid()? The only valid call to __change_pid() with a NULL > > argument and PIDTYPE_PID is from __unhash_process(), no? > > We used to perform free_pid() directly from __change_pid() so prior to > v6.15 changes it wasn't possible. Yes, exactly ;) > Now that we free the pids separately let's > just move the notification into __unhash_process(). I have a patch ready > for this. Agreed, Acked-by: Oleg Nesterov <oleg@xxxxxxxxxx>