Files
linux/net
Parthasarathy Bhuvaragan afa485dc6f tipc: fix hanging clients using poll with EPOLLOUT flag
[ Upstream commit ff946833b7 ]

commit 517d7c79bd ("tipc: fix hanging poll() for stream sockets")
introduced a regression for clients using non-blocking sockets.
After the commit, we send EPOLLOUT event to the client even in
TIPC_CONNECTING state. This causes the subsequent send() to fail
with ENOTCONN, as the socket is still not in TIPC_ESTABLISHED state.

In this commit, we:
- improve the fix for hanging poll() by replacing sk_data_ready()
  with sk_state_change() to wake up all clients.
- revert the faulty updates introduced by commit 517d7c79bd
  ("tipc: fix hanging poll() for stream sockets").

Fixes: 517d7c79bd ("tipc: fix hanging poll() for stream sockets")
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@gmail.com>
Acked-by: Jon Maloy <jon.maloy@ericsson.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-16 19:41:31 +02:00
..
2019-02-23 09:07:27 +01:00
2018-12-01 09:37:27 +01:00
2019-03-23 20:09:51 +01:00
2019-05-02 09:59:00 +02:00
2019-05-05 14:42:38 +02:00
2019-05-16 19:41:27 +02:00
2018-07-24 14:10:42 -07:00
2019-03-19 13:12:40 +01:00
2019-05-04 09:20:12 +02:00
2019-01-09 17:38:33 +01:00
2018-07-24 14:10:43 -07:00