aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorYing Xue <ying.xue@windriver.com>2014-05-04 20:56:11 -0400
committerDavid S. Miller <davem@davemloft.net>2014-05-05 17:26:44 -0400
commit10f465c4966fbc8f50a59480d37a3451f6f3d564 (patch)
treef94a16d100710b23ff3c3069a76bc942f32edc00 /net/tipc
parent486f930ac546914550b84abbc227867cc1be1f95 (diff)
tipc: rename setup_blocked variable of node struct to flags
Rename setup_blocked variable of node struct to a more common name called "flags", which will be used to represent kinds of node states. Signed-off-by: Ying Xue <ying.xue@windriver.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/link.c20
-rw-r--r--net/tipc/node.c6
-rw-r--r--net/tipc/node.h24
3 files changed, 31 insertions, 19 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 3a801452643d..ac074aaf104d 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1495,14 +1495,14 @@ void tipc_rcv(struct sk_buff *head, struct tipc_bearer *b_ptr)
1495 goto unlock_discard; 1495 goto unlock_discard;
1496 1496
1497 /* Verify that communication with node is currently allowed */ 1497 /* Verify that communication with node is currently allowed */
1498 if ((n_ptr->block_setup & WAIT_PEER_DOWN) && 1498 if ((n_ptr->flags & TIPC_NODE_DOWN) &&
1499 msg_user(msg) == LINK_PROTOCOL && 1499 msg_user(msg) == LINK_PROTOCOL &&
1500 (msg_type(msg) == RESET_MSG || 1500 (msg_type(msg) == RESET_MSG ||
1501 msg_type(msg) == ACTIVATE_MSG) && 1501 msg_type(msg) == ACTIVATE_MSG) &&
1502 !msg_redundant_link(msg)) 1502 !msg_redundant_link(msg))
1503 n_ptr->block_setup &= ~WAIT_PEER_DOWN; 1503 n_ptr->flags &= ~TIPC_NODE_DOWN;
1504 1504
1505 if (n_ptr->block_setup) 1505 if (tipc_node_blocked(n_ptr))
1506 goto unlock_discard; 1506 goto unlock_discard;
1507 1507
1508 /* Validate message sequence number info */ 1508 /* Validate message sequence number info */
@@ -1744,7 +1744,7 @@ void tipc_link_proto_xmit(struct tipc_link *l_ptr, u32 msg_typ, int probe_msg,
1744 return; 1744 return;
1745 1745
1746 /* Abort non-RESET send if communication with node is prohibited */ 1746 /* Abort non-RESET send if communication with node is prohibited */
1747 if ((l_ptr->owner->block_setup) && (msg_typ != RESET_MSG)) 1747 if ((tipc_node_blocked(l_ptr->owner)) && (msg_typ != RESET_MSG))
1748 return; 1748 return;
1749 1749
1750 /* Create protocol message with "out-of-sequence" sequence number */ 1750 /* Create protocol message with "out-of-sequence" sequence number */
@@ -1859,7 +1859,7 @@ static void tipc_link_proto_rcv(struct tipc_link *l_ptr, struct sk_buff *buf)
1859 * peer has lost contact -- don't allow peer's links 1859 * peer has lost contact -- don't allow peer's links
1860 * to reactivate before we recognize loss & clean up 1860 * to reactivate before we recognize loss & clean up
1861 */ 1861 */
1862 l_ptr->owner->block_setup = WAIT_NODE_DOWN; 1862 l_ptr->owner->flags = TIPC_NODE_RESET;
1863 } 1863 }
1864 1864
1865 link_state_event(l_ptr, RESET_MSG); 1865 link_state_event(l_ptr, RESET_MSG);
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 6d6543e88c2c..2b0a0849d4cc 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -108,7 +108,7 @@ struct tipc_node *tipc_node_create(u32 addr)
108 break; 108 break;
109 } 109 }
110 list_add_tail_rcu(&n_ptr->list, &temp_node->list); 110 list_add_tail_rcu(&n_ptr->list, &temp_node->list);
111 n_ptr->block_setup = WAIT_PEER_DOWN; 111 n_ptr->flags = TIPC_NODE_DOWN;
112 n_ptr->signature = INVALID_NODE_SIG; 112 n_ptr->signature = INVALID_NODE_SIG;
113 113
114 tipc_num_nodes++; 114 tipc_num_nodes++;
@@ -280,7 +280,7 @@ static void node_name_purge_complete(unsigned long node_addr)
280 n_ptr = tipc_node_find(node_addr); 280 n_ptr = tipc_node_find(node_addr);
281 if (n_ptr) { 281 if (n_ptr) {
282 tipc_node_lock(n_ptr); 282 tipc_node_lock(n_ptr);
283 n_ptr->block_setup &= ~WAIT_NAMES_GONE; 283 n_ptr->flags &= ~TIPC_NAMES_GONE;
284 tipc_node_unlock(n_ptr); 284 tipc_node_unlock(n_ptr);
285 } 285 }
286} 286}
@@ -324,7 +324,7 @@ static void node_lost_contact(struct tipc_node *n_ptr)
324 tipc_nodesub_notify(n_ptr); 324 tipc_nodesub_notify(n_ptr);
325 325
326 /* Prevent re-contact with node until cleanup is done */ 326 /* Prevent re-contact with node until cleanup is done */
327 n_ptr->block_setup = WAIT_PEER_DOWN | WAIT_NAMES_GONE; 327 n_ptr->flags = TIPC_NODE_DOWN | TIPC_NAMES_GONE;
328 tipc_k_signal((Handler)node_name_purge_complete, n_ptr->addr); 328 tipc_k_signal((Handler)node_name_purge_complete, n_ptr->addr);
329} 329}
330 330
diff --git a/net/tipc/node.h b/net/tipc/node.h
index bb7f708ce19b..242b918ddd14 100644
--- a/net/tipc/node.h
+++ b/net/tipc/node.h
@@ -47,10 +47,16 @@
47 */ 47 */
48#define INVALID_NODE_SIG 0x10000 48#define INVALID_NODE_SIG 0x10000
49 49
50/* Flags used to block (re)establishment of contact with a neighboring node */ 50/* Flags used to block (re)establishment of contact with a neighboring node
51#define WAIT_PEER_DOWN 0x0001 /* wait to see that peer's links are down */ 51 * TIPC_NODE_DOWN: indicate node is down
52#define WAIT_NAMES_GONE 0x0002 /* wait for peer's publications to be purged */ 52 * TIPC_NAMES_GONE: indicate the node's publications are purged
53#define WAIT_NODE_DOWN 0x0004 /* wait until peer node is declared down */ 53 * TIPC_NODE_RESET: indicate node is reset
54 */
55enum {
56 TIPC_NODE_DOWN = (1 << 1),
57 TIPC_NAMES_GONE = (1 << 2),
58 TIPC_NODE_RESET = (1 << 3)
59};
54 60
55/** 61/**
56 * struct tipc_node_bclink - TIPC node bclink structure 62 * struct tipc_node_bclink - TIPC node bclink structure
@@ -85,7 +91,7 @@ struct tipc_node_bclink {
85 * @hash: links to adjacent nodes in unsorted hash chain 91 * @hash: links to adjacent nodes in unsorted hash chain
86 * @active_links: pointers to active links to node 92 * @active_links: pointers to active links to node
87 * @links: pointers to all links to node 93 * @links: pointers to all links to node
88 * @block_setup: bit mask of conditions preventing link establishment to node 94 * @flags: bit mask of conditions preventing link establishment to node
89 * @bclink: broadcast-related info 95 * @bclink: broadcast-related info
90 * @list: links to adjacent nodes in sorted list of cluster's nodes 96 * @list: links to adjacent nodes in sorted list of cluster's nodes
91 * @working_links: number of working links to node (both active and standby) 97 * @working_links: number of working links to node (both active and standby)
@@ -100,7 +106,7 @@ struct tipc_node {
100 struct hlist_node hash; 106 struct hlist_node hash;
101 struct tipc_link *active_links[2]; 107 struct tipc_link *active_links[2];
102 struct tipc_link *links[MAX_BEARERS]; 108 struct tipc_link *links[MAX_BEARERS];
103 int block_setup; 109 unsigned int flags;
104 struct tipc_node_bclink bclink; 110 struct tipc_node_bclink bclink;
105 struct list_head list; 111 struct list_head list;
106 int link_cnt; 112 int link_cnt;
@@ -135,4 +141,10 @@ static inline void tipc_node_unlock(struct tipc_node *n_ptr)
135 spin_unlock_bh(&n_ptr->lock); 141 spin_unlock_bh(&n_ptr->lock);
136} 142}
137 143
144static inline bool tipc_node_blocked(struct tipc_node *node)
145{
146 return (node->flags & (TIPC_NODE_DOWN | TIPC_NAMES_GONE |
147 TIPC_NODE_RESET));
148}
149
138#endif 150#endif