On Fri, Jun 22, 2018 at 02:07:39PM +0200, Christoph Hellwig wrote:
> On Fri, Jun 22, 2018 at 12:56:13PM +0100, Al Viro wrote:
> >     So mark that in ->f_mode - I strongly suspect that
> > sk_can_busy_loop(sock->sk) can't change while an opened file is there.
> > And lift that (conditional on new FMODE_BUSY_LOOP) into do_poll()
> > and do_select() - we *already* have bits of pieces of that logics in
> > there and that way they'd at least be gathered in one place.
> 
> The problem is that call to sk_busy_loop(), which is going to be indirect
> no matter what.

        if ->f_poll_head is NULL {
                use ->poll
        } else {
                if can ll_poll (checked in ->f_mode)
                        call ->ll_poll(), if it returns what we want - we are 
done
                add to ->f_poll_head
                call ->poll_mask()
        }

Reply via email to