diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2012-02-21 22:06:29 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-03-01 09:16:30 -0800 |
commit | 326a7d04260c15f1b6e201621438844f8747b963 (patch) | |
tree | 0080b4d4521ba930dac4d20f7e32d91aa8308f9b /xlators/mgmt/glusterd | |
parent | 86f631f4283cba7185e5b1d5a3be4b9a614ed985 (diff) |
cluster/afr: Add new option to know which process it is in
Afr xl needs to maintain inode-table inside the xl if it is in
self-heal-daemon. The code was depending on the option
self-heal-daemon to do this. This is wrong as the option can be
reconfigured to on/off. Added a new option which can't be
reconfigured for this purpose.
Change-Id: Idc42c403c4bd9b73d1f328427ae4158ff1420b3a
BUG: 795741
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2787
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/mgmt/glusterd')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 84222136c81..5fbef4e445e 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -2465,7 +2465,7 @@ build_client_graph (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, static int shd_option_handler (volgen_graph_t *graph, struct volopt_map_entry *vme, - void *param) + void *param) { int ret = 0; struct volopt_map_entry new_vme = {0}; @@ -2660,6 +2660,23 @@ nfs_option_handler (volgen_graph_t *graph, } static int +volgen_graph_set_iam_shd (volgen_graph_t *graph) +{ + xlator_t *trav; + int ret = 0; + + for (trav = first_of (graph); trav; trav = trav->next) { + if (strcmp (trav->type, "cluster/replicate") != 0) + continue; + + ret = xlator_set_option (trav, "iam-self-heal-daemon", "yes"); + if (ret) + break; + } + return ret; +} + +static int build_shd_graph (volgen_graph_t *graph, dict_t *mod_dict) { volgen_graph_t cgraph = {0}; @@ -2733,6 +2750,10 @@ build_shd_graph (volgen_graph_t *graph, dict_t *mod_dict) if (ret) goto out; + ret = volgen_graph_set_iam_shd (&cgraph); + if (ret) + goto out; + ret = volgen_graph_merge_sub (graph, &cgraph, rclusters); if (ret) goto out; |