ocfs2/cluster: Get all heartbeat regions
Export function in o2hb to get a list of heartbeat regions. It also adds an upper limit to the length of the heartbeat region name. o2hb_global_heartbeat_active() currently disables global heartbeat. It will be enabled in a later patch after all the code is added. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
This commit is contained in:
parent
b1365d0bd1
commit
b3c85c4cdf
@ -1623,6 +1623,9 @@ static struct config_item *o2hb_heartbeat_group_make_item(struct config_group *g
|
||||
if (reg == NULL)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (strlen(name) > O2HB_MAX_REGION_NAME_LEN)
|
||||
return ERR_PTR(-ENAMETOOLONG);
|
||||
|
||||
config_item_init_type_name(®->hr_item, name, &o2hb_region_type);
|
||||
|
||||
spin_lock(&o2hb_live_lock);
|
||||
@ -2035,3 +2038,34 @@ void o2hb_stop_all_regions(void)
|
||||
spin_unlock(&o2hb_live_lock);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(o2hb_stop_all_regions);
|
||||
|
||||
int o2hb_get_all_regions(char *region_uuids, u8 max_regions)
|
||||
{
|
||||
struct o2hb_region *reg;
|
||||
int numregs = 0;
|
||||
char *p;
|
||||
|
||||
spin_lock(&o2hb_live_lock);
|
||||
|
||||
p = region_uuids;
|
||||
list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) {
|
||||
mlog(0, "Region: %s\n", config_item_name(®->hr_item));
|
||||
if (numregs < max_regions) {
|
||||
memcpy(p, config_item_name(®->hr_item),
|
||||
O2HB_MAX_REGION_NAME_LEN);
|
||||
p += O2HB_MAX_REGION_NAME_LEN;
|
||||
}
|
||||
numregs++;
|
||||
}
|
||||
|
||||
spin_unlock(&o2hb_live_lock);
|
||||
|
||||
return numregs;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(o2hb_get_all_regions);
|
||||
|
||||
int o2hb_global_heartbeat_active(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(o2hb_global_heartbeat_active);
|
||||
|
@ -31,6 +31,8 @@
|
||||
|
||||
#define O2HB_REGION_TIMEOUT_MS 2000
|
||||
|
||||
#define O2HB_MAX_REGION_NAME_LEN 32
|
||||
|
||||
/* number of changes to be seen as live */
|
||||
#define O2HB_LIVE_THRESHOLD 2
|
||||
/* number of equal samples to be seen as dead */
|
||||
@ -81,5 +83,7 @@ int o2hb_check_node_heartbeating(u8 node_num);
|
||||
int o2hb_check_node_heartbeating_from_callback(u8 node_num);
|
||||
int o2hb_check_local_node_heartbeating(void);
|
||||
void o2hb_stop_all_regions(void);
|
||||
int o2hb_get_all_regions(char *region_uuids, u8 numregions);
|
||||
int o2hb_global_heartbeat_active(void);
|
||||
|
||||
#endif /* O2CLUSTER_HEARTBEAT_H */
|
||||
|
Loading…
Reference in New Issue
Block a user