diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 44 | 
1 files changed, 28 insertions, 16 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index dfe735054..7a11b02e3 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1804,7 +1804,7 @@ nfs_option_handler (glusterfs_graph_t *graph,                          return -1;          } -        if (! strcmp (vme->option, "!rpc-auth.addr.%s.reject")) { +        if (! strcmp (vme->option, "!rpc-auth.addr.*.reject")) {                  ret = gf_asprintf (&aa, "rpc-auth.addr.%s.reject",                                          volinfo->volname); @@ -1842,7 +1842,7 @@ nfs_option_handler (glusterfs_graph_t *graph,                          return -1;          } -        if (! strcmp (vme->option, "!nfs3.%s.trusted-sync")) { +        if (! strcmp (vme->option, "!nfs3.*.trusted-sync")) {                  ret = gf_asprintf (&aa, "nfs3.%s.trusted-sync",                                          volinfo->volname); @@ -1923,6 +1923,13 @@ nfs_option_handler (glusterfs_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; @@ -1940,18 +1947,6 @@ nfs_option_handler (glusterfs_graph_t *graph,          return 0;  } -static int -nfs_spec_option_handler (glusterfs_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 (glusterfs_graph_t *graph, dict_t *mod_dict) @@ -2041,10 +2036,10 @@ build_nfs_graph (glusterfs_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); @@ -2052,7 +2047,24 @@ build_nfs_graph (glusterfs_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;  | 
