summaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorHerton R. Krzesinski <herton@redhat.com>2014-10-01 23:49:53 +0200
committerDavid S. Miller <davem@davemloft.net>2014-10-03 21:51:59 +0200
commiteb74cc97b830c1e438dc1d6b049f17bdb2b9aae5 (patch)
treef3b45a40a460a4a70ad9436ded5b1daa1da802fc /arch/blackfin
parentnet/rds: call rds_conn_drop instead of open code it at rds_connect_complete (diff)
downloadlinux-eb74cc97b830c1e438dc1d6b049f17bdb2b9aae5.tar.xz
linux-eb74cc97b830c1e438dc1d6b049f17bdb2b9aae5.zip
net/rds: do proper house keeping if connection fails in rds_tcp_conn_connect
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: Herton R. Krzesinski <herton@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/blackfin')
0 files changed, 0 insertions, 0 deletions