Re: [PATCH 13/36] fs: introduce new ->get_poll_head and ->poll_mask methods

From: Christoph Hellwig
Date: Tue Mar 20 2018 - 11:39:09 EST


On Mon, Mar 19, 2018 at 08:29:38PM -0700, Darrick J. Wong wrote:
> On Mon, Mar 05, 2018 at 01:27:20PM -0800, Christoph Hellwig wrote:
> > ->get_poll_head returns the waitqueue that the poll operation is going
> > to sleep on. Note that this means we can only use a single waitqueue
> > for the poll, unlike some current drivers that use two waitqueues for
> > different events. But now that we have keyed wakeups and heavily use
> > those for poll there aren't that many good reason left to keep the
> > multiple waitqueues, and if there are any ->poll is still around, the
> > driver just won't support aio poll.
> >
> > Signed-off-by: Christoph Hellwig <hch@xxxxxx>
>
> I've been wondering, how does a regular filesystem connect with this?

In general, it doesn't. In Unix regular files aren't pollable.

> Also, does anything implement get_poll_head? It looks to me like an aio
> poll provider has to provide both...

Yes. Everyone who implements ->poll_mask also needs to implement
get_poll_head. For sockets we just happen to be able to use a generic
implementation in net/socket.c for most of them.