diff options
| -rw-r--r-- | libglusterfs/src/options.c | 9 | ||||
| -rw-r--r-- | libglusterfs/src/xlator.c | 1 | 
2 files changed, 9 insertions, 1 deletions
diff --git a/libglusterfs/src/options.c b/libglusterfs/src/options.c index dee3c91854f..ccd57e4f07f 100644 --- a/libglusterfs/src/options.c +++ b/libglusterfs/src/options.c @@ -567,12 +567,19 @@ static volume_option_t *  xlator_volume_option_get_list (volume_opt_list_t *vol_list, const char *key)  {          volume_option_t         *opt = NULL; +        volume_opt_list_t       *opt_list = NULL;          volume_option_t         *found = NULL;          int                      index = 0;          int                      i = 0;          char                    *cmp_key = NULL; -        opt = vol_list->given_opt; +        if (!vol_list->given_opt) { +                opt_list = list_entry (vol_list->list.next, volume_opt_list_t, +                                       list); +                opt = opt_list->given_opt; +        } else +                opt = vol_list->given_opt; +          for (index = 0; opt[index].key && opt[index].key[0]; index++) {                  for (i = 0; i < ZR_VOLUME_MAX_NUM_KEY; i++) {                          cmp_key = opt[index].key[i]; diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index 67ecabce576..e826228ed31 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -170,6 +170,7 @@ xlator_volopt_dynload (char *xlator_type, void **dl_handle,                  gf_log ("xlator", GF_LOG_DEBUG,                           "Strict option validation not enforced -- neglecting");          } +        INIT_LIST_HEAD (&vol_opt->list);          list_add_tail (&vol_opt->list, &opt_list->list);          ret = 0;  | 
