From 2f53b7857c66a99f5dc626aa2acb99edf5b2e9f4 Mon Sep 17 00:00:00 2001 From: Kaushik BV Date: Thu, 18 Aug 2011 00:55:28 +0530 Subject: mgmt/glusterd: call the nfs option handler at the right place Change-Id: If2b854ede47fa27c0134e6abaccb62dbe2ea8b26 BUG: 3414 Reviewed-on: http://review.gluster.com/255 Reviewed-by: Vijay Bellur Tested-by: Gluster Build System --- xlators/mgmt/glusterd/src/glusterd-volgen.c | 40 +++++++++++++++++++---------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 2551d5f22..2fe182941 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -2090,6 +2090,13 @@ nfs_option_handler (volgen_graph_t *graph, return -1; } + if ( (strcmp (vme->voltype, "nfs/server") == 0) && + (vme->option && vme->option[0]!='!') ) { + ret = xlator_set_option (xl, vme->option, vme->value); + if (ret) + return -1; + } + /*key = strchr (vme->key, '.') + 1; @@ -2107,18 +2114,6 @@ nfs_option_handler (volgen_graph_t *graph, return 0; } -static int -nfs_spec_option_handler (volgen_graph_t *graph, - struct volopt_map_entry *vme, void *param) -{ - int ret = 0; - - ret = nfs_option_handler (graph, vme, param); - if (!ret) - return basic_option_handler (graph, vme, NULL); - return ret; -} - /* builds a graph for nfs server role, with option overrides in mod_dict */ static int build_nfs_graph (volgen_graph_t *graph, dict_t *mod_dict) @@ -2207,10 +2202,10 @@ build_nfs_graph (volgen_graph_t *graph, dict_t *mod_dict) if (mod_dict) { dict_copy (mod_dict, set_dict); ret = volgen_graph_set_options_generic (&cgraph, set_dict, voliter, - nfs_spec_option_handler); + basic_option_handler); } else { ret = volgen_graph_set_options_generic (&cgraph, voliter->dict, voliter, - nfs_spec_option_handler); + basic_option_handler); } ret = volgen_graph_merge_sub (graph, &cgraph); @@ -2218,7 +2213,24 @@ build_nfs_graph (volgen_graph_t *graph, dict_t *mod_dict) goto out; } + list_for_each_entry (voliter, &priv->volumes, vol_list) { + + if (mod_dict) { + dict_copy (mod_dict, set_dict); + ret = volgen_graph_set_options_generic (graph, set_dict, voliter, + nfs_option_handler); + } else { + ret = volgen_graph_set_options_generic (graph, voliter->dict, voliter, + nfs_option_handler); + } + + if (ret) + gf_log ("glusterd", GF_LOG_WARNING, "Could not set " + "vol-options for the volume %s", voliter->volname); + } + out: + gf_log ("glusterd", GF_LOG_DEBUG, "Returning %d", ret); dict_destroy (set_dict); return ret; -- cgit