On Fri 06-08-21 02:23:17, Shakeel Butt wrote: > On Thu, Aug 5, 2021 at 11:40 PM Michal Hocko <mhocko@xxxxxxxx> wrote: > > > [...] > > I think you really want something like this: > > > > if (flags) > > return -EINVAL; > > > > pid = pidfd_get_pid(fd, &f_flags); > > if (IS_ERR(pid)) > > return PTR_ERR(pid); > > task = get_pid_task(pid, PIDTYPE_PID); > > if (!task) { > > ret = -ESRCH; > > goto put_pid; > > } > > > > /* > > * Make sure to chose a thread which still has a reference to mm > > * during the group exit > > */ > > p = find_lock_task_mm(task); > > if (!p) { > > ret = -ESRCH; > > goto put_task; > > } > > > > mm = task->mm; > > mm = p->mm; right. Thanks! -- Michal Hocko SUSE Labs