Re: [PATCH v7 1/2] mm: introduce process_mrelease system call

From: Michal Hocko
Date: Fri Aug 06 2021 - 06:15:08 EST


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