Lines Matching refs:cluster
62 struct o2nm_cluster *cluster = o2nm_single_cluster; in o2nm_configured_node_map() local
64 BUG_ON(bytes < (sizeof(cluster->cl_nodes_bitmap))); in o2nm_configured_node_map()
66 if (cluster == NULL) in o2nm_configured_node_map()
69 read_lock(&cluster->cl_nodes_lock); in o2nm_configured_node_map()
70 memcpy(map, cluster->cl_nodes_bitmap, sizeof(cluster->cl_nodes_bitmap)); in o2nm_configured_node_map()
71 read_unlock(&cluster->cl_nodes_lock); in o2nm_configured_node_map()
77 static struct o2nm_node *o2nm_node_ip_tree_lookup(struct o2nm_cluster *cluster, in o2nm_node_ip_tree_lookup() argument
82 struct rb_node **p = &cluster->cl_node_ip_tree.rb_node; in o2nm_node_ip_tree_lookup()
115 struct o2nm_cluster *cluster = o2nm_single_cluster; in o2nm_get_node_by_ip() local
117 if (cluster == NULL) in o2nm_get_node_by_ip()
120 read_lock(&cluster->cl_nodes_lock); in o2nm_get_node_by_ip()
121 node = o2nm_node_ip_tree_lookup(cluster, addr, NULL, NULL); in o2nm_get_node_by_ip()
124 read_unlock(&cluster->cl_nodes_lock); in o2nm_get_node_by_ip()
197 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_num_write() local
216 write_lock(&cluster->cl_nodes_lock); in o2nm_node_num_write()
217 if (cluster->cl_nodes[tmp]) in o2nm_node_num_write()
220 cluster->cl_nodes[tmp] = node; in o2nm_node_num_write()
222 set_bit(tmp, cluster->cl_nodes_bitmap); in o2nm_node_num_write()
224 write_unlock(&cluster->cl_nodes_lock); in o2nm_node_num_write()
264 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_ipv4_address_write() local
282 write_lock(&cluster->cl_nodes_lock); in o2nm_node_ipv4_address_write()
283 if (o2nm_node_ip_tree_lookup(cluster, ipv4_addr, &p, &parent)) 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()
289 write_unlock(&cluster->cl_nodes_lock); in o2nm_node_ipv4_address_write()
306 struct o2nm_cluster *cluster = to_o2nm_cluster_from_node(node); in o2nm_node_local_write() local
326 if (tmp && tmp == cluster->cl_has_local && in o2nm_node_local_write()
327 cluster->cl_local_node != node->nd_num) in o2nm_node_local_write()
331 if (tmp && !cluster->cl_has_local) { in o2nm_node_local_write()
337 if (!tmp && cluster->cl_has_local && in o2nm_node_local_write()
338 cluster->cl_local_node == node->nd_num) { in o2nm_node_local_write()
340 cluster->cl_local_node = O2NM_INVALID_NODE_NUM; in o2nm_node_local_write()
345 cluster->cl_has_local = tmp; in o2nm_node_local_write()
346 cluster->cl_local_node = node->nd_num; in o2nm_node_local_write()
505 struct o2nm_cluster *cluster, char *page) in o2nm_cluster_attr_idle_timeout_ms_read() argument
507 return sprintf(page, "%u\n", cluster->cl_idle_timeout_ms); in o2nm_cluster_attr_idle_timeout_ms_read()
511 struct o2nm_cluster *cluster, const char *page, size_t count) in o2nm_cluster_attr_idle_timeout_ms_write() argument
519 if (cluster->cl_idle_timeout_ms != val in o2nm_cluster_attr_idle_timeout_ms_write()
527 } else if (val <= cluster->cl_keepalive_delay_ms) { in o2nm_cluster_attr_idle_timeout_ms_write()
532 cluster->cl_idle_timeout_ms = val; in o2nm_cluster_attr_idle_timeout_ms_write()
540 struct o2nm_cluster *cluster, char *page) in o2nm_cluster_attr_keepalive_delay_ms_read() argument
542 return sprintf(page, "%u\n", cluster->cl_keepalive_delay_ms); in o2nm_cluster_attr_keepalive_delay_ms_read()
546 struct o2nm_cluster *cluster, const char *page, size_t count) in o2nm_cluster_attr_keepalive_delay_ms_write() argument
554 if (cluster->cl_keepalive_delay_ms != val in o2nm_cluster_attr_keepalive_delay_ms_write()
562 } else if (val >= cluster->cl_idle_timeout_ms) { in o2nm_cluster_attr_keepalive_delay_ms_write()
567 cluster->cl_keepalive_delay_ms = val; in o2nm_cluster_attr_keepalive_delay_ms_write()
575 struct o2nm_cluster *cluster, char *page) in o2nm_cluster_attr_reconnect_delay_ms_read() argument
577 return sprintf(page, "%u\n", cluster->cl_reconnect_delay_ms); in o2nm_cluster_attr_reconnect_delay_ms_read()
581 struct o2nm_cluster *cluster, const char *page, size_t count) in o2nm_cluster_attr_reconnect_delay_ms_write() argument
584 &cluster->cl_reconnect_delay_ms); in o2nm_cluster_attr_reconnect_delay_ms_write()
588 struct o2nm_cluster *cluster, char *page) in o2nm_cluster_attr_fence_method_read() argument
592 if (cluster) in o2nm_cluster_attr_fence_method_read()
594 o2nm_fence_method_desc[cluster->cl_fence_method]); in o2nm_cluster_attr_fence_method_read()
599 struct o2nm_cluster *cluster, const char *page, size_t count) in o2nm_cluster_attr_fence_method_write() argument
611 if (cluster->cl_fence_method != i) { in o2nm_cluster_attr_fence_method_write()
614 cluster->cl_fence_method = i; in o2nm_cluster_attr_fence_method_write()
666 struct o2nm_cluster *cluster = to_o2nm_cluster(item); in o2nm_cluster_show() local
672 ret = o2nm_cluster_attr->show(cluster, page); in o2nm_cluster_show()
680 struct o2nm_cluster *cluster = to_o2nm_cluster(item); in o2nm_cluster_store() local
690 ret = o2nm_cluster_attr->store(cluster, page, count); in o2nm_cluster_store()
722 struct o2nm_cluster *cluster = to_o2nm_cluster(group->cg_item.ci_parent); in o2nm_node_group_drop_item() local
726 if (cluster->cl_has_local && in o2nm_node_group_drop_item()
727 (cluster->cl_local_node == node->nd_num)) { in o2nm_node_group_drop_item()
728 cluster->cl_has_local = 0; in o2nm_node_group_drop_item()
729 cluster->cl_local_node = O2NM_INVALID_NODE_NUM; in o2nm_node_group_drop_item()
735 write_lock(&cluster->cl_nodes_lock); 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()
746 write_unlock(&cluster->cl_nodes_lock); in o2nm_node_group_drop_item()
768 struct o2nm_cluster *cluster = to_o2nm_cluster(item); in o2nm_cluster_release() local
770 kfree(cluster->cl_group.default_groups); in o2nm_cluster_release()
771 kfree(cluster); in o2nm_cluster_release()
805 struct o2nm_cluster *cluster = NULL; in o2nm_cluster_group_make_group() local
815 cluster = kzalloc(sizeof(struct o2nm_cluster), GFP_KERNEL); in o2nm_cluster_group_make_group()
819 if (cluster == NULL || ns == NULL || o2hb_group == NULL || defs == NULL) in o2nm_cluster_group_make_group()
822 config_group_init_type_name(&cluster->cl_group, name, in o2nm_cluster_group_make_group()
827 cluster->cl_group.default_groups = defs; in o2nm_cluster_group_make_group()
828 cluster->cl_group.default_groups[0] = &ns->ns_group; in o2nm_cluster_group_make_group()
829 cluster->cl_group.default_groups[1] = o2hb_group; in o2nm_cluster_group_make_group()
830 cluster->cl_group.default_groups[2] = NULL; in o2nm_cluster_group_make_group()
831 rwlock_init(&cluster->cl_nodes_lock); in o2nm_cluster_group_make_group()
832 cluster->cl_node_ip_tree = RB_ROOT; in o2nm_cluster_group_make_group()
833 cluster->cl_reconnect_delay_ms = O2NET_RECONNECT_DELAY_MS_DEFAULT; in o2nm_cluster_group_make_group()
834 cluster->cl_idle_timeout_ms = O2NET_IDLE_TIMEOUT_MS_DEFAULT; in o2nm_cluster_group_make_group()
835 cluster->cl_keepalive_delay_ms = O2NET_KEEPALIVE_DELAY_MS_DEFAULT; in o2nm_cluster_group_make_group()
836 cluster->cl_fence_method = O2NM_FENCE_RESET; in o2nm_cluster_group_make_group()
838 ret = &cluster->cl_group; in o2nm_cluster_group_make_group()
839 o2nm_single_cluster = cluster; in o2nm_cluster_group_make_group()
843 kfree(cluster); in o2nm_cluster_group_make_group()
855 struct o2nm_cluster *cluster = to_o2nm_cluster(item); in o2nm_cluster_group_drop_item() local
859 BUG_ON(o2nm_single_cluster != cluster); in o2nm_cluster_group_drop_item()
862 for (i = 0; cluster->cl_group.default_groups[i]; i++) { in o2nm_cluster_group_drop_item()
863 killme = &cluster->cl_group.default_groups[i]->cg_item; in o2nm_cluster_group_drop_item()
864 cluster->cl_group.default_groups[i] = NULL; in o2nm_cluster_group_drop_item()