summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorVijay Bellur <vijay@gluster.com>2010-09-30 11:41:07 +0000
committerVijay Bellur <vijay@dev.gluster.com>2010-09-30 11:19:28 -0700
commitda74288339563759f568aa5052fdce4c45ebcd22 (patch)
tree49c2f9eaa7131c45b864b7c073fb2d20615a9881 /xlators
parentaf18c636c44b1ea56296850e55afe0e4b2ce845c (diff)
glusterfsd: perform init new graph if re-configure fails
Signed-off-by: Vijay Bellur <vijay@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1235 (Bug for all pump/migrate commits) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1235
Diffstat (limited to 'xlators')
-rw-r--r--xlators/protocol/client/src/client.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index b703b88f4b7..84f3778393f 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -1769,14 +1769,18 @@ int
reconfigure (xlator_t *this, dict_t *options)
{
int ret = 0;
- int timeout_ret=0;
- int ping_timeout;
- int frame_timeout;
+ int timeout_ret = 0;
+ int ping_timeout = 0;
+ int frame_timeout = 0;
clnt_conf_t *conf = NULL;
+ char *old_remote_subvol = NULL;
+ char *new_remote_subvol = NULL;
+ int subvol_ret = 0;
+
+
-
conf = this->private;
-
+
timeout_ret = dict_get_int32 (options, "frame-timeout",
&frame_timeout);
if (timeout_ret == 0) {
@@ -1798,7 +1802,7 @@ reconfigure (xlator_t *this, dict_t *options)
goto out;
}
-
+
gf_log (this->name, GF_LOG_DEBUG,
"Reconfiguring otion frame-timeout to %d",
frame_timeout);
@@ -1827,15 +1831,30 @@ reconfigure (xlator_t *this, dict_t *options)
ret = -1;
goto out;
}
-
+
gf_log (this->name, GF_LOG_DEBUG, "Reconfiguring "
"'option ping-timeout' to %d", ping_timeout);
conf->opt.ping_timeout = ping_timeout;
}
+ subvol_ret = dict_get_str (this->options, "remote-subvolume",
+ &old_remote_subvol);
+
+ if (subvol_ret == 0) {
+
+ subvol_ret = dict_get_str (options, "remote-subvolume",
+ &new_remote_subvol);
+
+ if (subvol_ret == 0) {
+ if (strcmp (old_remote_subvol, new_remote_subvol)) {
+ ret = 1;
+ goto out;
+ }
+ }
+ }
+
out:
return ret;
-
}