diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c index 35558656fe02fa28f304dd42372d172e0fd3ae71..41f4464ac6cc5b5f04c278574a7bd6c47e4646eb 100644 --- a/net/tipc/topsrv.c +++ b/net/tipc/topsrv.c @@ -409,10 +409,11 @@ static int tipc_conn_rcv_from_sock(struct tipc_conn *con) read_lock_bh(&sk->sk_callback_lock); ret = tipc_conn_rcv_sub(srv, con, &s); read_unlock_bh(&sk->sk_callback_lock); + if (!ret) + return 0; } - if (ret < 0) - tipc_conn_close(con); + tipc_conn_close(con); return ret; }