On Mon, 2016-05-02 at 16:31 -0400, David Miller wrote: > From: Eric Dumazet <eric.duma...@gmail.com> > Date: Mon, 02 May 2016 13:23:27 -0700 > > > It looks like net/sunrpc/xprtsock.c should set SOCK_FASYNC > > even if it is not actually using fasync_list > > > > Could you try this quick hack to check if this is the right way ? > > Indeed, it tests the ASYNC bit without enabling FASYNC. > > There are three other places that do this: macvtap, tun, dlm lowcomms.
Yes, although macvtap and tun have a private usage of this bit. When the flag was moved (commit ceb5d58b217098a657f3850b7a2640f995032e62 "net: fix sock_wake_async() rcu protection"), I did not change the code in these drivers. And apparently nobody complained (linux-4.4) drivers/net/macvtap.c:501: !test_and_clear_bit(SOCKWQ_ASYNC_NOSPACE, &sk->sk_socket->flags)) drivers/net/macvtap.c:588: (!test_and_set_bit(SOCKWQ_ASYNC_NOSPACE, &q->sock.flags) && drivers/net/tun.c:1111: (!test_and_set_bit(SOCKWQ_ASYNC_NOSPACE, &sk->sk_socket->flags) && drivers/net/tun.c:1576: if (!test_and_clear_bit(SOCKWQ_ASYNC_NOSPACE, &sk->sk_socket->flags)) fs/dlm/lowcomms.c probably needs a fix.