summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranith Kumar K <pkarampu@redhat.com>2015-02-05 21:26:04 +0530
committerVijay Bellur <vbellur@redhat.com>2015-02-06 14:05:40 -0800
commit5e25569ed0717aa8636ad708430a823d39f9aa60 (patch)
tree46e160381b505742e984b71c2c166adb09b876c2
parent2efb36047aa11838b2cde93a3e95741e7ba40bae (diff)
cluster/afr: Re-introduce heal-timeout option
Change-Id: I87484c810006a92ed7489284b6d74e9b0aecae80 BUG: 1177601 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-on: http://review.gluster.org/9598 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Ravishankar N <ravishankar@redhat.com> Reviewed-by: Krutika Dhananjay <kdhananj@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r--xlators/cluster/afr/src/afr-self-heald.c2
-rw-r--r--xlators/cluster/afr/src/afr-self-heald.h1
-rw-r--r--xlators/cluster/afr/src/afr.c12
3 files changed, 14 insertions, 1 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heald.c b/xlators/cluster/afr/src/afr-self-heald.c
index 74998b97b63..f979f992660 100644
--- a/xlators/cluster/afr/src/afr-self-heald.c
+++ b/xlators/cluster/afr/src/afr-self-heald.c
@@ -129,7 +129,7 @@ __afr_shd_healer_wait (struct subvol_healer *healer)
priv = healer->this->private;
disabled_loop:
- wait_till.tv_sec = time (NULL) + 60;
+ wait_till.tv_sec = time (NULL) + priv->shd.timeout;
while (!healer->rerun) {
ret = pthread_cond_timedwait (&healer->cond,
diff --git a/xlators/cluster/afr/src/afr-self-heald.h b/xlators/cluster/afr/src/afr-self-heald.h
index 02b26b8061f..58b088e4cd7 100644
--- a/xlators/cluster/afr/src/afr-self-heald.h
+++ b/xlators/cluster/afr/src/afr-self-heald.h
@@ -50,6 +50,7 @@ struct subvol_healer {
typedef struct {
gf_boolean_t iamshd;
gf_boolean_t enabled;
+ int timeout;
struct subvol_healer *index_healers;
struct subvol_healer *full_healers;
diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c
index 2c0ff05fd78..8e0c2ebef23 100644
--- a/xlators/cluster/afr/src/afr.c
+++ b/xlators/cluster/afr/src/afr.c
@@ -200,6 +200,9 @@ reconfigure (xlator_t *this, dict_t *options)
GF_OPTION_RECONF ("iam-self-heal-daemon", priv->shd.iamshd, options,
bool, out);
+ GF_OPTION_RECONF ("heal-timeout", priv->shd.timeout, options,
+ int32, out);
+
priv->did_discovery = _gf_false;
ret = 0;
@@ -346,6 +349,7 @@ init (xlator_t *this)
GF_OPTION_INIT ("self-heal-daemon", priv->shd.enabled, bool, out);
GF_OPTION_INIT ("iam-self-heal-daemon", priv->shd.iamshd, bool, out);
+ GF_OPTION_INIT ("heal-timeout", priv->shd.timeout, int32, out);
priv->wait_count = 1;
@@ -749,5 +753,13 @@ struct volume_options options[] = {
.type = GF_OPTION_TYPE_BOOL,
.default_value = "off",
},
+ { .key = {"heal-timeout"},
+ .type = GF_OPTION_TYPE_INT,
+ .min = 60,
+ .max = INT_MAX,
+ .default_value = "600",
+ .description = "time interval for checking the need to self-heal "
+ "in self-heal-daemon"
+ },
{ .key = {NULL} },
};