ocfs2/cluster: Add new function o2net_fill_node_map()
Patch adds function o2net_fill_node_map() to return the bitmap of nodes that it is connected to. This bitmap is also accessible by the user via the debugfs file, /sys/kernel/debug/o2net/connected_nodes. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
This commit is contained in:
@@ -1034,6 +1034,25 @@ static int o2net_tx_can_proceed(struct o2net_node *nn,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Get a map of all nodes to which this node is currently connected to */
|
||||
void o2net_fill_node_map(unsigned long *map, unsigned bytes)
|
||||
{
|
||||
struct o2net_sock_container *sc;
|
||||
int node, ret;
|
||||
|
||||
BUG_ON(bytes < (BITS_TO_LONGS(O2NM_MAX_NODES) * sizeof(unsigned long)));
|
||||
|
||||
memset(map, 0, bytes);
|
||||
for (node = 0; node < O2NM_MAX_NODES; ++node) {
|
||||
o2net_tx_can_proceed(o2net_nn_from_num(node), &sc, &ret);
|
||||
if (!ret) {
|
||||
set_bit(node, map);
|
||||
sc_put(sc);
|
||||
}
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(o2net_fill_node_map);
|
||||
|
||||
int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
|
||||
size_t caller_veclen, u8 target_node, int *status)
|
||||
{
|
||||
|
Reference in New Issue
Block a user