diff options
Diffstat (limited to 'net/tipc/discover.c')
-rw-r--r-- | net/tipc/discover.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c index cc748d4d4742..3b0cd12f37da 100644 --- a/net/tipc/discover.c +++ b/net/tipc/discover.c | |||
@@ -195,7 +195,8 @@ void tipc_disc_recv_msg(struct sk_buff *buf) | |||
195 | struct sk_buff *rbuf; | 195 | struct sk_buff *rbuf; |
196 | struct tipc_media_addr *addr; | 196 | struct tipc_media_addr *addr; |
197 | struct node *n_ptr = tipc_node_find(orig); | 197 | struct node *n_ptr = tipc_node_find(orig); |
198 | int link_up; | 198 | int link_fully_up; |
199 | |||
199 | dbg(" in own cluster\n"); | 200 | dbg(" in own cluster\n"); |
200 | if (n_ptr == NULL) { | 201 | if (n_ptr == NULL) { |
201 | n_ptr = tipc_node_create(orig); | 202 | n_ptr = tipc_node_create(orig); |
@@ -225,9 +226,9 @@ void tipc_disc_recv_msg(struct sk_buff *buf) | |||
225 | memcpy(addr, &media_addr, sizeof(*addr)); | 226 | memcpy(addr, &media_addr, sizeof(*addr)); |
226 | tipc_link_reset(link); | 227 | tipc_link_reset(link); |
227 | } | 228 | } |
228 | link_up = tipc_link_is_up(link); | 229 | link_fully_up = (link->state == WORKING_WORKING); |
229 | spin_unlock_bh(&n_ptr->lock); | 230 | spin_unlock_bh(&n_ptr->lock); |
230 | if ((type == DSC_RESP_MSG) || link_up) | 231 | if ((type == DSC_RESP_MSG) || link_fully_up) |
231 | return; | 232 | return; |
232 | rbuf = tipc_disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr); | 233 | rbuf = tipc_disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr); |
233 | if (rbuf != NULL) { | 234 | if (rbuf != NULL) { |