Lines Matching refs:node
45 struct o2nm_node *node = NULL; in o2nm_get_node_by_num() local
51 node = o2nm_single_cluster->cl_nodes[node_num]; in o2nm_get_node_by_num()
52 if (node) in o2nm_get_node_by_num()
53 config_item_get(&node->nd_item); in o2nm_get_node_by_num()
56 return node; in o2nm_get_node_by_num()
84 struct o2nm_node *node, *ret = NULL; in o2nm_node_ip_tree_lookup() local
90 node = rb_entry(parent, struct o2nm_node, nd_ip_node); in o2nm_node_ip_tree_lookup()
92 cmp = memcmp(&ip_needle, &node->nd_ipv4_address, in o2nm_node_ip_tree_lookup()
99 ret = node; in o2nm_node_ip_tree_lookup()
114 struct o2nm_node *node = NULL; in o2nm_get_node_by_ip() local
121 node = o2nm_node_ip_tree_lookup(cluster, addr, NULL, NULL); in o2nm_get_node_by_ip()
122 if (node) in o2nm_get_node_by_ip()
123 config_item_get(&node->nd_item); in o2nm_get_node_by_ip()
127 return node; in o2nm_get_node_by_ip()
131 void o2nm_node_put(struct o2nm_node *node) in o2nm_node_put() argument
133 config_item_put(&node->nd_item); in o2nm_node_put()
137 void o2nm_node_get(struct o2nm_node *node) in o2nm_node_get() argument
139 config_item_get(&node->nd_item); in o2nm_node_get()
171 struct o2nm_node *node = to_o2nm_node(item); in o2nm_node_release() local
172 kfree(node); in o2nm_node_release()
175 static ssize_t o2nm_node_num_read(struct o2nm_node *node, char *page) in o2nm_node_num_read() argument
177 return sprintf(page, "%d\n", node->nd_num); in o2nm_node_num_read()
180 static struct o2nm_cluster *to_o2nm_cluster_from_node(struct o2nm_node *node) in to_o2nm_cluster_from_node() argument
184 return to_o2nm_cluster(node->nd_item.ci_parent->ci_parent); in to_o2nm_cluster_from_node()
194 static ssize_t o2nm_node_num_write(struct o2nm_node *node, const char *page, in o2nm_node_num_write() argument
197 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_num_write()
212 if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) || in o2nm_node_num_write()
213 !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes)) in o2nm_node_num_write()
220 cluster->cl_nodes[tmp] = node; in o2nm_node_num_write()
221 node->nd_num = tmp; in o2nm_node_num_write()
230 static ssize_t o2nm_node_ipv4_port_read(struct o2nm_node *node, char *page) in o2nm_node_ipv4_port_read() argument
232 return sprintf(page, "%u\n", ntohs(node->nd_ipv4_port)); in o2nm_node_ipv4_port_read()
235 static ssize_t o2nm_node_ipv4_port_write(struct o2nm_node *node, in o2nm_node_ipv4_port_write() argument
250 node->nd_ipv4_port = htons(tmp); in o2nm_node_ipv4_port_write()
255 static ssize_t o2nm_node_ipv4_address_read(struct o2nm_node *node, char *page) in o2nm_node_ipv4_address_read() argument
257 return sprintf(page, "%pI4\n", &node->nd_ipv4_address); in o2nm_node_ipv4_address_read()
260 static ssize_t o2nm_node_ipv4_address_write(struct o2nm_node *node, in o2nm_node_ipv4_address_write() argument
264 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_ipv4_address_write()
286 rb_link_node(&node->nd_ip_node, parent, p); in o2nm_node_ipv4_address_write()
287 rb_insert_color(&node->nd_ip_node, &cluster->cl_node_ip_tree); in o2nm_node_ipv4_address_write()
293 memcpy(&node->nd_ipv4_address, &ipv4_addr, sizeof(ipv4_addr)); in o2nm_node_ipv4_address_write()
298 static ssize_t o2nm_node_local_read(struct o2nm_node *node, char *page) in o2nm_node_local_read() argument
300 return sprintf(page, "%d\n", node->nd_local); in o2nm_node_local_read()
303 static ssize_t o2nm_node_local_write(struct o2nm_node *node, const char *page, in o2nm_node_local_write() argument
306 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_local_write()
319 if (!test_bit(O2NM_NODE_ATTR_ADDRESS, &node->nd_set_attributes) || in o2nm_node_local_write()
320 !test_bit(O2NM_NODE_ATTR_NUM, &node->nd_set_attributes) || in o2nm_node_local_write()
321 !test_bit(O2NM_NODE_ATTR_PORT, &node->nd_set_attributes)) in o2nm_node_local_write()
327 cluster->cl_local_node != node->nd_num) in o2nm_node_local_write()
332 ret = o2net_start_listening(node); in o2nm_node_local_write()
338 cluster->cl_local_node == node->nd_num) { in o2nm_node_local_write()
339 o2net_stop_listening(node); in o2nm_node_local_write()
343 node->nd_local = tmp; in o2nm_node_local_write()
344 if (node->nd_local) { in o2nm_node_local_write()
346 cluster->cl_local_node = node->nd_num; in o2nm_node_local_write()
413 struct o2nm_node *node = to_o2nm_node(item); in o2nm_node_show() local
419 ret = o2nm_node_attr->show(node, page); in o2nm_node_show()
427 struct o2nm_node *node = to_o2nm_node(item); in o2nm_node_store() local
438 if (test_bit(attr_index, &node->nd_set_attributes)) in o2nm_node_store()
441 ret = o2nm_node_attr->store(node, page, count); in o2nm_node_store()
445 set_bit(attr_index, &node->nd_set_attributes); in o2nm_node_store()
700 struct o2nm_node *node = NULL; in o2nm_node_group_make_item() local
705 node = kzalloc(sizeof(struct o2nm_node), GFP_KERNEL); in o2nm_node_group_make_item()
706 if (node == NULL) in o2nm_node_group_make_item()
709 strcpy(node->nd_name, name); /* use item.ci_namebuf instead? */ in o2nm_node_group_make_item()
710 config_item_init_type_name(&node->nd_item, name, &o2nm_node_type); in o2nm_node_group_make_item()
711 spin_lock_init(&node->nd_lock); in o2nm_node_group_make_item()
715 return &node->nd_item; in o2nm_node_group_make_item()
721 struct o2nm_node *node = to_o2nm_node(item); in o2nm_node_group_drop_item() local
724 o2net_disconnect_node(node); in o2nm_node_group_drop_item()
727 (cluster->cl_local_node == node->nd_num)) { in o2nm_node_group_drop_item()
730 o2net_stop_listening(node); in o2nm_node_group_drop_item()
738 if (node->nd_ipv4_address) in o2nm_node_group_drop_item()
739 rb_erase(&node->nd_ip_node, &cluster->cl_node_ip_tree); in o2nm_node_group_drop_item()
742 if (cluster->cl_nodes[node->nd_num] == node) { in o2nm_node_group_drop_item()
743 cluster->cl_nodes[node->nd_num] = NULL; in o2nm_node_group_drop_item()
744 clear_bit(node->nd_num, cluster->cl_nodes_bitmap); in o2nm_node_group_drop_item()
749 config_item_name(&node->nd_item)); in o2nm_node_group_drop_item()