Re: [PATCH] epoll: try to be a _bit_ better about file lifetimes

From: Al Viro
Date: Sun May 05 2024 - 16:31:15 EST


On Sun, May 05, 2024 at 01:03:07PM -0700, Linus Torvalds wrote:
> On Sun, 5 May 2024 at 12:46, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > I've no problem with having epoll grab a reference, but if we make that
> > a universal requirement ->poll() instances can rely upon,
>
> Al, we're note "making that a requirement".
>
> It always has been.

Argh. We keep talking past each other.

0. special-cased ->f_count rule for ->poll() is a wart and it's
better to get rid of it.

1. fs/eventpoll.c is a steaming pile of shit and I'd be glad to see
git rm taken to it. Short of that, by all means, let's grab reference
in there around the call of vfs_poll() (see (0)).

2. having ->poll() instances grab extra references to file passed
to them is not something that should be encouraged; there's a plenty
of potential problems, and "caller has it pinned, so we are fine with
grabbing extra refs" is nowhere near enough to eliminate those.

3. dma-buf uses of get_file() are probably safe (epoll shite aside),
but they do look fishy. That has nothing to do with epoll.