• Herton R. Krzesinski's avatar
    net/rds: do proper house keeping if connection fails in rds_tcp_conn_connect · eb74cc97
    Herton R. Krzesinski authored
    I see two problems if we consider the sock->ops->connect attempt to fail in
    rds_tcp_conn_connect. The first issue is that for example we don't remove the
    previously added rds_tcp_connection item to rds_tcp_tc_list at
    rds_tcp_set_callbacks, which means that on a next reconnect attempt for the
    same rds_connection, when rds_tcp_conn_connect is called we can again call
    rds_tcp_set_callbacks, resulting in duplicated items on rds_tcp_tc_list,
    leading to list corruption: to avoid this just make sure we call
    properly rds_tcp_restore_callbacks before we exit. The second issue
    is that we should also release the sock properly, by setting sock = NULL
    only if we are returning without error.
    Signed-off-by: default avatarHerton R. Krzesinski <herton@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    eb74cc97
tcp_connect.c 4.26 KB