diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heald.c | 2 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heald.h | 1 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr.c | 12 | 
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} },  };  | 
