From 35f96c039e8961e48af46af43b6ecf7a335feb15 Mon Sep 17 00:00:00 2001 From: Vikas Gorur Date: Thu, 17 Sep 2009 05:56:32 +0000 Subject: 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 --- xlators/cluster/afr/src/afr-self-heal-data.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'xlators/cluster/afr/src/afr-self-heal-data.c') diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c index 4ed6071ab..576a15e06 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]; } -- cgit