diff options
Diffstat (limited to 'xlators/cluster/afr/src/afr.c')
-rw-r--r-- | xlators/cluster/afr/src/afr.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index 775a53a8fba..cb458250597 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -71,6 +71,7 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr) gf_boolean_t metadata_change_log; gf_boolean_t entry_change_log; gf_boolean_t strict_readdir; + gf_boolean_t optimistic_change_log; xlator_list_t * trav = NULL; @@ -257,6 +258,26 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr) "change-log %s'.", change_log); } + + dict_ret = dict_get_str (options, "optimistic-change-log", + &change_log); + if (dict_ret == 0) { + temp_ret = gf_string2boolean (change_log, &optimistic_change_log); + if (temp_ret < 0) { + gf_log (this->name, GF_LOG_WARNING, + "Validation faled for optimistic-change-log"); + *op_errstr = gf_strdup ("Error, option should be boolean"); + ret = -1; + goto out; + } + + + gf_log (this->name, GF_LOG_DEBUG, + "Validated 'option optimistic-" + "change-log %s'.", change_log); + } + + read_ret = dict_get_str (options, "read-subvolume", &read_subvol); if (read_ret) @@ -674,6 +695,7 @@ init (xlator_t *this) priv->data_change_log = 1; priv->metadata_change_log = 1; priv->entry_change_log = 1; + priv->optimistic_change_log = 1; dict_ret = dict_get_str (this->options, "data-change-log", &change_log); @@ -715,6 +737,19 @@ init (xlator_t *this) } } + dict_ret = dict_get_str (this->options, "optimistic-change-log", + &change_log); + if (dict_ret == 0) { + ret = gf_string2boolean (change_log, &priv->optimistic_change_log); + if (ret < 0) { + gf_log (this->name, GF_LOG_WARNING, + "Invalid 'option optimistic-change-log %s'. " + "Defaulting to optimistic-change-log as 'on'.", + change_log); + priv->optimistic_change_log = 1; + } + } + /* Locking options */ priv->inodelk_trace = 0; @@ -994,6 +1029,9 @@ struct volume_options options[] = { { .key = {"entry-change-log"}, .type = GF_OPTION_TYPE_BOOL }, + { .key = {"optimistic-change-log"}, + .type = GF_OPTION_TYPE_BOOL + }, { .key = {"data-lock-server-count"}, .type = GF_OPTION_TYPE_INT, .min = 0 |