diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 31 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.h | 2 | 
2 files changed, 33 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index f83cdefe828..619e32920f0 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -413,6 +413,37 @@ volgen_graph_set_options (glusterfs_graph_t *graph, dict_t *dict)  }  static int +optget_option_handler (glusterfs_graph_t *graph, struct volopt_map_entry2 *vme2, +                       void *param) +{ +        struct volopt_map_entry2 *vme2x = param; + +        if (strcmp (vme2->key, vme2x->key) == 0) +                vme2x->value = vme2->value; + +        return 0; +} + +/* This getter considers defaults also. */ +int +glusterd_volinfo_get (glusterd_volinfo_t *volinfo, char *key, char **value) +{ +        struct volopt_map_entry2 vme2 = {0,}; +        int ret = 0; + +        vme2.key = key; + +        ret = volgen_graph_set_options_generic (NULL, volinfo->dict, &vme2, +                                                &optget_option_handler); +        if (ret) +                return -1; + +        *value = vme2.value; + +        return 0; +} + +static int  volgen_graph_merge_sub (glusterfs_graph_t *dgraph, glusterfs_graph_t *sgraph)  {          xlator_t *trav = NULL; diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.h b/xlators/mgmt/glusterd/src/glusterd-volgen.h index 3e877fd7b08..fe706ef335c 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.h +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.h @@ -46,4 +46,6 @@ int glusterd_create_nfs_volfile ();  int glusterd_delete_volfile (glusterd_volinfo_t *volinfo,                               glusterd_brickinfo_t *brickinfo); +int glusterd_volinfo_get (glusterd_volinfo_t *volinfo, char *key, char **value); +  #endif  | 
