Re: [patch 2/3] kcmp: Add KCMP_EPOLL_TFD mode to compare epoll target files

From: Cyrill Gorcunov
Date: Mon Mar 13 2017 - 14:38:12 EST


On Mon, Mar 13, 2017 at 10:37:24AM -0700, Andrei Vagin wrote:
>
> Here is one question inline.
>
> Acked-by: Andrei Vagin <avagin@xxxxxxxxxxxxx>

Thanks!

> > +
> > + files = get_files_struct(task2);
> > + if (!files)
> > + return -EBADF;
> > +
> > + spin_lock(&files->file_lock);
> > + filp_epoll = fcheck_files(files, slot.efd);
> > + if (filp_epoll)
> > + get_file(filp_epoll);
> > + else
> > + filp_tgt = ERR_PTR(-EBADF);
> > + spin_unlock(&files->file_lock);
> > + put_files_struct(files);
>
> Why can we not use fget here ^^^^ ?

Because it's not @current's file table but foreigner process.
So we make sure there is no expand_fdtable in progress and
we test for file descriptor which is being freed.