cluster: master - dlm_controld/gfs_controld: plock config paths
David Teigland
teigland@fedoraproject.org
Wed Dec 10 16:43:00 GMT 2008
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=9e7ba291babc001442443b8f73deb6ece8b394a6
Commit: 9e7ba291babc001442443b8f73deb6ece8b394a6
Parent: 74a81c4818b1c7bf94d0b0f079e9f64bff47b59c
Author: David Teigland <teigland@redhat.com>
AuthorDate: Wed Dec 10 10:36:12 2008 -0600
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Wed Dec 10 10:36:12 2008 -0600
dlm_controld/gfs_controld: plock config paths
In cluster2 where plocks are done by gfs_controld, plock config options
are under <gfs_controld/>. In cluster3 plocks are done by dlm_controld
(and gfs_controld for back-compat), and plock config options are under
<dlm/> (or <gfs_controld/>). Make both gfs_controld and dlm_controld
look for plock config options under both <gfs_controld/> and <dlm/>.
Signed-off-by: David Teigland <teigland@redhat.com>
---
group/dlm_controld/config.c | 55 ++++++++++++++++++++++++++++----------
group/dlm_controld/dlm_daemon.h | 2 +-
group/gfs_controld/config.c | 54 +++++++++++++++++++++++++++-----------
group/gfs_controld/gfs_daemon.h | 2 +-
4 files changed, 80 insertions(+), 33 deletions(-)
diff --git a/group/dlm_controld/config.c b/group/dlm_controld/config.c
index af71f5f..3650b76 100644
--- a/group/dlm_controld/config.c
+++ b/group/dlm_controld/config.c
@@ -162,7 +162,7 @@ void read_ccs_yesno(char *path, int *yes, int *no)
free(str);
}
-void read_ccs_int(char *path, int *config_val)
+int read_ccs_int(char *path, int *config_val)
{
char *str;
int val;
@@ -170,18 +170,19 @@ void read_ccs_int(char *path, int *config_val)
error = ccs_get(ccs_handle, path, &str);
if (error || !str)
- return;
+ return -1;
val = atoi(str);
if (val < 0) {
log_error("ignore invalid value %d for %s", val, path);
- return;
+ return -1;
}
*config_val = val;
log_debug("%s is %u", path, val);
free(str);
+ return 0;
}
static void read_ccs_protocol(char *path, int *config_val)
@@ -223,9 +224,16 @@ static void read_ccs_protocol(char *path, int *config_val)
#define DROP_RESOURCES_COUNT_PATH "/cluster/dlm/@drop_resources_count"
#define DROP_RESOURCES_AGE_PATH "/cluster/dlm/@drop_resources_age"
+/* for backward-compat */
+#define GFS_PLOCK_RATE_LIMIT_PATH "/cluster/gfs_controld/@plock_rate_limit"
+#define GFS_PLOCK_OWNERSHIP_PATH "/cluster/gfs_controld/@plock_ownership"
+#define GFS_DROP_RESOURCES_TIME_PATH "/cluster/gfs_controld/@drop_resources_time"
+#define GFS_DROP_RESOURCES_COUNT_PATH "/cluster/gfs_controld/@drop_resources_count"
+#define GFS_DROP_RESOURCES_AGE_PATH "/cluster/gfs_controld/@drop_resources_age"
+
int setup_ccs(void)
{
- int cd;
+ int cd, rv;
if (ccs_handle)
goto update;
@@ -256,21 +264,38 @@ int setup_ccs(void)
read_ccs_int(ENABLE_DEADLK_PATH, &cfgd_enable_deadlk);
if (!optd_enable_plock)
read_ccs_int(ENABLE_PLOCK_PATH, &cfgd_enable_plock);
- if (!optd_plock_ownership)
- read_ccs_int(PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ if (!optd_plock_ownership) {
+ rv = read_ccs_int(PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ if (rv < 0)
+ read_ccs_int(GFS_PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ }
+
/* The following can be changed while running */
update:
- if (!optd_plock_debug)
+ if (!optd_plock_debug) {
read_ccs_int(PLOCK_DEBUG_PATH, &cfgd_plock_debug);
- if (!optd_plock_rate_limit)
- read_ccs_int(PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
- if (!optd_drop_resources_time)
- read_ccs_int(DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
- if (!optd_drop_resources_count)
- read_ccs_int(DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
- if (!optd_drop_resources_age)
- read_ccs_int(DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
+ }
+ if (!optd_plock_rate_limit) {
+ rv = read_ccs_int(PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
+ if (rv < 0)
+ read_ccs_int(GFS_PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
+ }
+ if (!optd_drop_resources_time) {
+ rv = read_ccs_int(DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
+ if (rv < 0)
+ read_ccs_int(GFS_DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
+ }
+ if (!optd_drop_resources_count) {
+ rv = read_ccs_int(DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
+ if (rv < 0)
+ read_ccs_int(GFS_DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
+ }
+ if (!optd_drop_resources_age) {
+ rv = read_ccs_int(DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
+ if (rv < 0)
+ read_ccs_int(GFS_DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
+ }
return 0;
}
diff --git a/group/dlm_controld/dlm_daemon.h b/group/dlm_controld/dlm_daemon.h
index 02e4ce9..8173192 100644
--- a/group/dlm_controld/dlm_daemon.h
+++ b/group/dlm_controld/dlm_daemon.h
@@ -227,7 +227,7 @@ int setup_ccs(void);
void close_ccs(void);
void read_ccs_name(char *path, char *name);
void read_ccs_yesno(char *path, int *yes, int *no);
-void read_ccs_int(char *path, int *config_val);
+int read_ccs_int(char *path, int *config_val);
int get_weight(int nodeid, char *lockspace);
/* cpg.c */
diff --git a/group/gfs_controld/config.c b/group/gfs_controld/config.c
index f9b438f..b6e2ebe 100644
--- a/group/gfs_controld/config.c
+++ b/group/gfs_controld/config.c
@@ -88,7 +88,7 @@ void read_ccs_yesno(char *path, int *yes, int *no)
free(str);
}
-void read_ccs_int(char *path, int *config_val)
+int read_ccs_int(char *path, int *config_val)
{
char *str;
int val;
@@ -96,18 +96,19 @@ void read_ccs_int(char *path, int *config_val)
error = ccs_get(ccs_handle, path, &str);
if (error || !str)
- return;
+ return -1;
val = atoi(str);
if (val < 0) {
log_error("ignore invalid value %d for %s", val, path);
- return;
+ return -1;
}
*config_val = val;
log_debug("%s is %u", path, val);
free(str);
+ return 0;
}
#define LOCKSPACE_NODIR "/cluster/dlm/lockspace[@name=\"%s\"]/@nodir"
@@ -149,9 +150,15 @@ void read_ccs_nodir(struct mountgroup *mg, char *buf)
#define DROP_RESOURCES_COUNT_PATH "/cluster/gfs_controld/@drop_resources_count"
#define DROP_RESOURCES_AGE_PATH "/cluster/gfs_controld/@drop_resources_age"
+#define DLM_PLOCK_RATE_LIMIT_PATH "/cluster/dlm/@plock_rate_limit"
+#define DLM_PLOCK_OWNERSHIP_PATH "/cluster/dlm/@plock_ownership"
+#define DLM_DROP_RESOURCES_TIME_PATH "/cluster/dlm/@drop_resources_time"
+#define DLM_DROP_RESOURCES_COUNT_PATH "/cluster/dlm/@drop_resources_count"
+#define DLM_DROP_RESOURCES_AGE_PATH "/cluster/dlm/@drop_resources_age"
+
int setup_ccs(void)
{
- int cd;
+ int cd, rv;
if (ccs_handle)
goto update;
@@ -172,22 +179,37 @@ int setup_ccs(void)
read_ccs_int(ENABLE_WITHDRAW_PATH, &cfgd_enable_withdraw);
if (!optd_enable_plock)
read_ccs_int(ENABLE_PLOCK_PATH, &cfgd_enable_plock);
- if (!optd_plock_ownership)
- read_ccs_int(PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ if (!optd_plock_ownership) {
+ rv = read_ccs_int(PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ if (rv < 0)
+ read_ccs_int(DLM_PLOCK_OWNERSHIP_PATH, &cfgd_plock_ownership);
+ }
/* The following can be changed while running */
update:
- if (!optd_plock_debug)
+ if (!optd_plock_debug) {
read_ccs_int(PLOCK_DEBUG_PATH, &cfgd_plock_debug);
- if (!optd_plock_rate_limit)
- read_ccs_int(PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
- if (!optd_drop_resources_time)
- read_ccs_int(DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
- if (!optd_drop_resources_count)
- read_ccs_int(DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
- if (!optd_drop_resources_age)
- read_ccs_int(DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
-
+ }
+ if (!optd_plock_rate_limit) {
+ rv = read_ccs_int(PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
+ if (rv < 0)
+ read_ccs_int(DLM_PLOCK_RATE_LIMIT_PATH, &cfgd_plock_rate_limit);
+ }
+ if (!optd_drop_resources_time) {
+ rv = read_ccs_int(DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
+ if (rv < 0)
+ read_ccs_int(DLM_DROP_RESOURCES_TIME_PATH, &cfgd_drop_resources_time);
+ }
+ if (!optd_drop_resources_count) {
+ rv = read_ccs_int(DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
+ if (rv < 0)
+ read_ccs_int(DLM_DROP_RESOURCES_COUNT_PATH, &cfgd_drop_resources_count);
+ }
+ if (!optd_drop_resources_age) {
+ rv = read_ccs_int(DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
+ if (rv < 0)
+ read_ccs_int(DLM_DROP_RESOURCES_AGE_PATH, &cfgd_drop_resources_age);
+ }
return 0;
}
diff --git a/group/gfs_controld/gfs_daemon.h b/group/gfs_controld/gfs_daemon.h
index c93d9cc..157865a 100644
--- a/group/gfs_controld/gfs_daemon.h
+++ b/group/gfs_controld/gfs_daemon.h
@@ -215,7 +215,7 @@ int setup_ccs(void);
void close_ccs(void);
void read_ccs_name(char *path, char *name);
void read_ccs_yesno(char *path, int *yes, int *no);
-void read_ccs_int(char *path, int *config_val);
+int read_ccs_int(char *path, int *config_val);
void read_ccs_nodir(struct mountgroup *mg, char *buf);
/* cpg-new.c */
More information about the Cluster-cvs
mailing list