diff options
| -rw-r--r-- | fs/ocfs2/cluster/heartbeat.c | 34 | ||||
| -rw-r--r-- | fs/ocfs2/cluster/heartbeat.h | 4 |
2 files changed, 38 insertions, 0 deletions
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index 4d36459a8343..3415e58ff77b 100644 --- a/fs/ocfs2/cluster/heartbeat.c +++ b/fs/ocfs2/cluster/heartbeat.c | |||
| @@ -1623,6 +1623,9 @@ static struct config_item *o2hb_heartbeat_group_make_item(struct config_group *g | |||
| 1623 | if (reg == NULL) | 1623 | if (reg == NULL) |
| 1624 | return ERR_PTR(-ENOMEM); | 1624 | return ERR_PTR(-ENOMEM); |
| 1625 | 1625 | ||
| 1626 | if (strlen(name) > O2HB_MAX_REGION_NAME_LEN) | ||
| 1627 | return ERR_PTR(-ENAMETOOLONG); | ||
| 1628 | |||
| 1626 | config_item_init_type_name(®->hr_item, name, &o2hb_region_type); | 1629 | config_item_init_type_name(®->hr_item, name, &o2hb_region_type); |
| 1627 | 1630 | ||
| 1628 | spin_lock(&o2hb_live_lock); | 1631 | spin_lock(&o2hb_live_lock); |
| @@ -2035,3 +2038,34 @@ void o2hb_stop_all_regions(void) | |||
| 2035 | spin_unlock(&o2hb_live_lock); | 2038 | spin_unlock(&o2hb_live_lock); |
| 2036 | } | 2039 | } |
| 2037 | EXPORT_SYMBOL_GPL(o2hb_stop_all_regions); | 2040 | EXPORT_SYMBOL_GPL(o2hb_stop_all_regions); |
| 2041 | |||
| 2042 | int o2hb_get_all_regions(char *region_uuids, u8 max_regions) | ||
| 2043 | { | ||
| 2044 | struct o2hb_region *reg; | ||
| 2045 | int numregs = 0; | ||
| 2046 | char *p; | ||
| 2047 | |||
| 2048 | spin_lock(&o2hb_live_lock); | ||
| 2049 | |||
| 2050 | p = region_uuids; | ||
| 2051 | list_for_each_entry(reg, &o2hb_all_regions, hr_all_item) { | ||
| 2052 | mlog(0, "Region: %s\n", config_item_name(®->hr_item)); | ||
| 2053 | if (numregs < max_regions) { | ||
| 2054 | memcpy(p, config_item_name(®->hr_item), | ||
| 2055 | O2HB_MAX_REGION_NAME_LEN); | ||
| 2056 | p += O2HB_MAX_REGION_NAME_LEN; | ||
| 2057 | } | ||
| 2058 | numregs++; | ||
| 2059 | } | ||
| 2060 | |||
| 2061 | spin_unlock(&o2hb_live_lock); | ||
| 2062 | |||
| 2063 | return numregs; | ||
| 2064 | } | ||
| 2065 | EXPORT_SYMBOL_GPL(o2hb_get_all_regions); | ||
| 2066 | |||
| 2067 | int o2hb_global_heartbeat_active(void) | ||
| 2068 | { | ||
| 2069 | return 0; | ||
| 2070 | } | ||
| 2071 | EXPORT_SYMBOL(o2hb_global_heartbeat_active); | ||
diff --git a/fs/ocfs2/cluster/heartbeat.h b/fs/ocfs2/cluster/heartbeat.h index 2f1649253b49..00ad8e8fea51 100644 --- a/fs/ocfs2/cluster/heartbeat.h +++ b/fs/ocfs2/cluster/heartbeat.h | |||
| @@ -31,6 +31,8 @@ | |||
| 31 | 31 | ||
| 32 | #define O2HB_REGION_TIMEOUT_MS 2000 | 32 | #define O2HB_REGION_TIMEOUT_MS 2000 |
| 33 | 33 | ||
| 34 | #define O2HB_MAX_REGION_NAME_LEN 32 | ||
| 35 | |||
| 34 | /* number of changes to be seen as live */ | 36 | /* number of changes to be seen as live */ |
| 35 | #define O2HB_LIVE_THRESHOLD 2 | 37 | #define O2HB_LIVE_THRESHOLD 2 |
| 36 | /* number of equal samples to be seen as dead */ | 38 | /* number of equal samples to be seen as dead */ |
| @@ -81,5 +83,7 @@ int o2hb_check_node_heartbeating(u8 node_num); | |||
| 81 | int o2hb_check_node_heartbeating_from_callback(u8 node_num); | 83 | int o2hb_check_node_heartbeating_from_callback(u8 node_num); |
| 82 | int o2hb_check_local_node_heartbeating(void); | 84 | int o2hb_check_local_node_heartbeating(void); |
| 83 | void o2hb_stop_all_regions(void); | 85 | void o2hb_stop_all_regions(void); |
| 86 | int o2hb_get_all_regions(char *region_uuids, u8 numregions); | ||
| 87 | int o2hb_global_heartbeat_active(void); | ||
| 84 | 88 | ||
| 85 | #endif /* O2CLUSTER_HEARTBEAT_H */ | 89 | #endif /* O2CLUSTER_HEARTBEAT_H */ |
