RDS-TCP: Reset tcp callbacks if re-using an outgoing socket in rds_tcp_accept_one()
[firefly-linux-kernel-4.4.55.git] / net / rds / tcp_listen.c
index 1d90240e5d82d3c5c2d52c7f55c360a6f8aa7677..0936a4a32b476fdde5c7208fc465ec3324bbcf09 100644 (file)
@@ -125,6 +125,9 @@ int rds_tcp_accept_one(struct socket *sock)
                new_sock = NULL;
                ret = 0;
                goto out;
+       } else if (rs_tcp->t_sock) {
+               rds_tcp_restore_callbacks(rs_tcp->t_sock, rs_tcp);
+               conn->c_outgoing = 0;
        }
 
        rds_conn_transition(conn, RDS_CONN_DOWN, RDS_CONN_CONNECTING);