diff options
author | Vikas Gorur <vikas@gluster.com> | 2009-09-17 05:56:32 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2009-09-22 06:13:34 -0700 |
commit | 35f96c039e8961e48af46af43b6ecf7a335feb15 (patch) | |
tree | d73021e62255efd6d7d8f83820c472467409fda4 /xlators/cluster/afr/src/afr-self-heal-data.c | |
parent | d2b7e65ec0c35c4ee16f28f449553d90fb88fa6a (diff) |
cluster/afr: Add new option "data-self-heal-algorithm"
option: data-self-heal-algorithm type: string default: "full"
This option allows the user to specify the algorithm to
be used for data self-heal. Currently supported values
are "full" and "diff".
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-self-heal-data.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-data.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c index 4ed6071abf2..576a15e06f2 100644 --- a/xlators/cluster/afr/src/afr-self-heal-data.c +++ b/xlators/cluster/afr/src/afr-self-heal-data.c @@ -476,7 +476,25 @@ afr_sh_data_trim_sinks (call_frame_t *frame, xlator_t *this) struct afr_sh_algorithm * afr_sh_data_pick_algo (call_frame_t *frame, xlator_t *this) { - return &afr_self_heal_algorithms[1]; /* full */ + afr_private_t *priv = NULL; + int i = 0; + + priv = this->private; + + while (afr_self_heal_algorithms[i].name) { + if (!strcmp (priv->data_self_heal_algorithm, + afr_self_heal_algorithms[i].name)) { + goto out; + } + + i++; + } + + /* No match found, so fall back on "full" */ + + i = 0; +out: + return &afr_self_heal_algorithms[i]; } |