diff options
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index befbcc9eade6..c3a36bba9952 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -273,18 +273,6 @@ static void node_established_contact(struct tipc_node *n_ptr) | |||
273 | tipc_bclink_add_node(n_ptr->addr); | 273 | tipc_bclink_add_node(n_ptr->addr); |
274 | } | 274 | } |
275 | 275 | ||
276 | static void node_name_purge_complete(unsigned long node_addr) | ||
277 | { | ||
278 | struct tipc_node *n_ptr; | ||
279 | |||
280 | n_ptr = tipc_node_find(node_addr); | ||
281 | if (n_ptr) { | ||
282 | tipc_node_lock(n_ptr); | ||
283 | n_ptr->flags &= ~TIPC_NAMES_GONE; | ||
284 | tipc_node_unlock(n_ptr); | ||
285 | } | ||
286 | } | ||
287 | |||
288 | static void node_lost_contact(struct tipc_node *n_ptr) | 276 | static void node_lost_contact(struct tipc_node *n_ptr) |
289 | { | 277 | { |
290 | char addr_string[16]; | 278 | char addr_string[16]; |
@@ -320,12 +308,10 @@ static void node_lost_contact(struct tipc_node *n_ptr) | |||
320 | tipc_link_reset_fragments(l_ptr); | 308 | tipc_link_reset_fragments(l_ptr); |
321 | } | 309 | } |
322 | 310 | ||
323 | /* Notify subscribers */ | 311 | /* Notify subscribers and prevent re-contact with node until |
324 | n_ptr->flags = TIPC_NODE_LOST; | 312 | * cleanup is done. |
325 | 313 | */ | |
326 | /* Prevent re-contact with node until cleanup is done */ | 314 | n_ptr->flags = TIPC_NODE_DOWN | TIPC_NODE_LOST; |
327 | n_ptr->flags |= TIPC_NODE_DOWN | TIPC_NAMES_GONE; | ||
328 | tipc_k_signal((Handler)node_name_purge_complete, n_ptr->addr); | ||
329 | } | 315 | } |
330 | 316 | ||
331 | struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space) | 317 | struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space) |