On Sat, Jan 06, 2018 at 07:16:22PM +0000, Al Viro wrote: > On Thu, Jan 04, 2018 at 09:00:16AM +0100, Christoph Hellwig wrote: > > The socket file operations still implement ->poll until all protocols are > > switched over. > > > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > > --- > > include/linux/net.h | 3 +++ > > net/socket.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++---- > > 2 files changed, 60 insertions(+), 4 deletions(-) > > > > diff --git a/include/linux/net.h b/include/linux/net.h > > index c2d468cb9821..94d65de30cb7 100644 > > --- a/include/linux/net.h > > +++ b/include/linux/net.h > > @@ -147,6 +147,9 @@ struct proto_ops { > > int (*getname) (struct socket *sock, > > struct sockaddr *addr, > > int *sockaddr_len, int peer); > > + void (*pre_poll) (const struct sock *sk); > > Description? Or more descriptive name, for that matter... One option might be to have the same get_poll_head semantics as the file operation. Which might actually be useful for the weird things smc is doing, if they make any sense at all to start with. > > > + __poll_t (*poll_mask) (struct file *file, struct socket *sock, > > + __poll_t events); > > Does that sucker need struct file? Not really. Especially as we could get that from sock->file if needed. I'll drop it for the next version.