From: David M. <da...@da...> - 2019-05-09 16:27:41
|
From: Parthasarathy Bhuvaragan <par...@gm...> Date: Thu, 9 May 2019 07:13:42 +0200 > commit 517d7c79bdb398 ("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 517d7c79bdb398 > ("tipc: fix hanging poll() for stream sockets"). > > Fixes: 517d7c79bdb398 ("tipc: fix hanging poll() for stream sockets") > Signed-off-by: Parthasarathy Bhuvaragan <par...@gm...> > Acked-by: Jon Maloy <jon...@er...> Applied and queued up for -stable. |