[Ocfs2-tools-commits] mfasheh commits r698 - in trunk/libo2cb: .
include
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Mar 18 19:58:05 CST 2005
Author: mfasheh
Signed-off-by: jlbec
Date: 2005-03-18 19:58:03 -0600 (Fri, 18 Mar 2005)
New Revision: 698
Modified:
trunk/libo2cb/include/o2cb.h
trunk/libo2cb/o2cb_abi.c
trunk/libo2cb/o2cb_err.et
Log:
* add o2cb_remove_heartbeat_region_disk
Signed-off-by: jlbec
Modified: trunk/libo2cb/include/o2cb.h
===================================================================
--- trunk/libo2cb/include/o2cb.h 2005-03-19 01:56:03 UTC (rev 697)
+++ trunk/libo2cb/include/o2cb.h 2005-03-19 01:58:03 UTC (rev 698)
@@ -62,6 +62,8 @@
int block_bytes,
uint64_t start_block,
uint64_t blocks);
+errcode_t o2cb_remove_heartbeat_region_disk(const char *cluster_name,
+ const char *region_name);
#endif /* _O2CB_H */
Modified: trunk/libo2cb/o2cb_abi.c
===================================================================
--- trunk/libo2cb/o2cb_abi.c 2005-03-19 01:56:03 UTC (rev 697)
+++ trunk/libo2cb/o2cb_abi.c 2005-03-19 01:58:03 UTC (rev 698)
@@ -385,9 +385,9 @@
errcode_t err;
if (!cluster_name) {
- ret = _fake_default_cluster(_fake_cluster_name);
- if (ret)
- return ret;
+ err = _fake_default_cluster(_fake_cluster_name);
+ if (err)
+ return err;
cluster_name = _fake_cluster_name;
}
@@ -518,6 +518,62 @@
return err;
}
+errcode_t o2cb_remove_heartbeat_region_disk(const char *cluster_name,
+ const char *region_name)
+{
+ char _fake_cluster_name[NAME_MAX];
+ char region_path[PATH_MAX];
+ int ret;
+ errcode_t err = 0;
+
+ if (!cluster_name) {
+ err = _fake_default_cluster(_fake_cluster_name);
+ if (err)
+ return err;
+ cluster_name = _fake_cluster_name;
+ }
+
+ ret = snprintf(region_path, PATH_MAX - 1,
+ O2CB_FORMAT_HEARTBEAT_REGION,
+ cluster_name, region_name);
+ if (ret <= 0 || ret == PATH_MAX - 1) {
+ err = O2CB_ET_INTERNAL_FAILURE;
+ goto out;
+ }
+
+ ret = rmdir(region_path);
+ if (ret) {
+ switch (errno) {
+ case EACCES:
+ case EPERM:
+ case EROFS:
+ err = O2CB_ET_PERMISSION_DENIED;
+ break;
+
+ case ENOMEM:
+ err = O2CB_ET_NO_MEMORY;
+ break;
+
+ case ENOTDIR:
+ case ENOENT:
+ err = O2CB_ET_SERVICE_UNAVAILABLE;
+ break;
+
+ case ENOTEMPTY:
+ case EBUSY:
+ err = O2CB_ET_REGION_IN_USE;
+ break;
+
+ default:
+ err = O2CB_ET_INTERNAL_FAILURE;
+ break;
+ }
+ }
+
+out:
+ return err;
+}
+
errcode_t o2cb_list_clusters(char ***clusters)
{
errcode_t ret;
Modified: trunk/libo2cb/o2cb_err.et
===================================================================
--- trunk/libo2cb/o2cb_err.et 2005-03-19 01:56:03 UTC (rev 697)
+++ trunk/libo2cb/o2cb_err.et 2005-03-19 01:58:03 UTC (rev 698)
@@ -48,6 +48,9 @@
ec O2CB_ET_REGION_EXISTS,
"Heartbeat region already exists"
+ec O2CB_ET_REGION_IN_USE,
+ "Heartbeat region in use"
+
ec O2CB_ET_INVALID_BLOCK_SIZE,
"Block size is invalid"
More information about the Ocfs2-tools-commits
mailing list