mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
add a new function to collect a list of all active nodes EXCEPT a certain node
(This used to be ctdb commit be52954d921e7d443304cf49fbd488c619a9c4ec)
This commit is contained in:
parent
3133dadd8f
commit
71e4259150
@ -2975,6 +2975,40 @@ uint32_t *list_of_active_nodes(struct ctdb_context *ctdb,
|
||||
return nodes;
|
||||
}
|
||||
|
||||
uint32_t *list_of_active_nodes_except_pnn(struct ctdb_context *ctdb,
|
||||
struct ctdb_node_map *node_map,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
uint32_t pnn)
|
||||
{
|
||||
int i, j, num_nodes;
|
||||
uint32_t *nodes;
|
||||
|
||||
for (i=num_nodes=0;i<node_map->num;i++) {
|
||||
if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
|
||||
continue;
|
||||
}
|
||||
if (node_map->nodes[i].pnn == pnn) {
|
||||
continue;
|
||||
}
|
||||
num_nodes++;
|
||||
}
|
||||
|
||||
nodes = talloc_array(mem_ctx, uint32_t, num_nodes);
|
||||
CTDB_NO_MEMORY_FATAL(ctdb, nodes);
|
||||
|
||||
for (i=j=0;i<node_map->num;i++) {
|
||||
if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
|
||||
continue;
|
||||
}
|
||||
if (node_map->nodes[i].pnn == pnn) {
|
||||
continue;
|
||||
}
|
||||
nodes[j++] = node_map->nodes[i].pnn;
|
||||
}
|
||||
|
||||
return nodes;
|
||||
}
|
||||
|
||||
uint32_t *list_of_connected_nodes(struct ctdb_context *ctdb,
|
||||
struct ctdb_node_map *node_map,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
|
@ -581,6 +581,10 @@ uint32_t *list_of_vnnmap_nodes(struct ctdb_context *ctdb,
|
||||
struct ctdb_vnn_map *vnn_map,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
bool include_self);
|
||||
uint32_t *list_of_active_nodes_except_pnn(struct ctdb_context *ctdb,
|
||||
struct ctdb_node_map *node_map,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
uint32_t pnn);
|
||||
|
||||
int ctdb_read_pnn_lock(int fd, int32_t pnn);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user