[Ocfs2-tools-devel] [PATCH 1/5] o2cb: Handle failure to register heartbeat mode
Sunil Mushran
sunil.mushran at oracle.com
Mon Jun 6 12:01:30 PDT 2011
Kernels older than 2.6.37 do not support heartbeat mode. The o2cb tool should
ignore errors when failing to register local heartbeat in older kernels.
Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
---
libo2cb/o2cb_abi.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c
index 149889a..d789620 100644
--- a/libo2cb/o2cb_abi.c
+++ b/libo2cb/o2cb_abi.c
@@ -2115,6 +2115,7 @@ errcode_t o2cb_set_heartbeat_mode(char *cluster_name, char *hbmode)
char attr_path[PATH_MAX];
char _fake_cluster_name[NAME_MAX];
errcode_t ret;
+ int local = 0;
if (!cluster_name) {
ret = _fake_default_cluster(_fake_cluster_name);
@@ -2123,12 +2124,17 @@ errcode_t o2cb_set_heartbeat_mode(char *cluster_name, char *hbmode)
cluster_name = _fake_cluster_name;
}
+ if (!strcmp(hbmode, O2CB_LOCAL_HEARTBEAT_TAG))
+ local = 1;
+
ret = snprintf(attr_path, PATH_MAX - 1, O2CB_FORMAT_HEARTBEAT_MODE,
configfs_path, cluster_name);
if ((ret <= 0) || (ret == (PATH_MAX - 1)))
return O2CB_ET_INTERNAL_FAILURE;
ret = o2cb_set_attribute(attr_path, hbmode);
+ if (ret && ret == O2CB_ET_SERVICE_UNAVAILABLE && local)
+ ret = 0;
return ret;
}
--
1.7.4.1
More information about the Ocfs2-tools-devel
mailing list