diff options
author | David S. Miller <davem@davemloft.net> | 2015-06-14 02:56:52 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-14 02:56:52 -0400 |
commit | 25c43bf13b1657d9a2f6a2565e9159ce31517aa5 (patch) | |
tree | c1fef736d3227dbd3788206c746d00763247f232 /net/tipc | |
parent | a2f0fad32b0d0022c7e5706d333d74a9579f3742 (diff) | |
parent | c8d17b451aa18b07b60e771addf17a5fdd4138c7 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/socket.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 30ea82a9b0f1..46b6ed534ef2 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -2140,11 +2140,17 @@ static void tipc_sk_timeout(unsigned long data) | |||
2140 | peer_node = tsk_peer_node(tsk); | 2140 | peer_node = tsk_peer_node(tsk); |
2141 | 2141 | ||
2142 | if (tsk->probing_state == TIPC_CONN_PROBING) { | 2142 | if (tsk->probing_state == TIPC_CONN_PROBING) { |
2143 | /* Previous probe not answered -> self abort */ | 2143 | if (!sock_owned_by_user(sk)) { |
2144 | skb = tipc_msg_create(TIPC_CRITICAL_IMPORTANCE, | 2144 | sk->sk_socket->state = SS_DISCONNECTING; |
2145 | TIPC_CONN_MSG, SHORT_H_SIZE, 0, | 2145 | tsk->connected = 0; |
2146 | own_node, peer_node, tsk->portid, | 2146 | tipc_node_remove_conn(sock_net(sk), tsk_peer_node(tsk), |
2147 | peer_port, TIPC_ERR_NO_PORT); | 2147 | tsk_peer_port(tsk)); |
2148 | sk->sk_state_change(sk); | ||
2149 | } else { | ||
2150 | /* Try again later */ | ||
2151 | sk_reset_timer(sk, &sk->sk_timer, (HZ / 20)); | ||
2152 | } | ||
2153 | |||
2148 | } else { | 2154 | } else { |
2149 | skb = tipc_msg_create(CONN_MANAGER, CONN_PROBE, | 2155 | skb = tipc_msg_create(CONN_MANAGER, CONN_PROBE, |
2150 | INT_H_SIZE, 0, peer_node, own_node, | 2156 | INT_H_SIZE, 0, peer_node, own_node, |