diff options
| -rw-r--r-- | cli/src/cli-cmd-parser.c | 16 | ||||
| -rw-r--r-- | libglusterfs/src/statedump.c | 12 | 
2 files changed, 13 insertions, 15 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index b169b77c68d..090a7246913 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -1976,18 +1976,19 @@ cli_cmd_volume_status_parse (const char **words, int wordcount,  }  gf_boolean_t -cli_cmd_validate_dumpoption (const char *option) +cli_cmd_validate_dumpoption (const char *arg, char **option)  {          char    *opwords[] = {"all", "nfs", "mem", "iobuf", "callpool", "priv", -			      "fd", "inode", NULL}; +                              "fd", "inode", NULL};          char    *w = NULL; -        w = str_getunamb (option, opwords); +        w = str_getunamb (arg, opwords);          if (!w) {                  gf_log ("cli", GF_LOG_DEBUG, "Unknown statedump option  %s", -                        option); +                        arg);                  return _gf_false;          } +        *option = w;          return _gf_true;  } @@ -1999,14 +2000,15 @@ cli_cmd_volume_statedump_options_parse (const char **words, int wordcount,          int     i = 0;          dict_t  *dict = NULL;          int     option_cnt = 0; +        char    *option = NULL;          char    option_str[100] = {0,};          for (i = 3; i < wordcount; i++, option_cnt++) { -                if (!cli_cmd_validate_dumpoption (words[i])) { +                if (!cli_cmd_validate_dumpoption (words[i], &option)) {                          ret = -1;                          goto out;                  } -                strncat (option_str, words[i], sizeof (words [i])); +                strncat (option_str, option, strlen (option));                  strncat (option_str, " ", 1);          } @@ -2014,7 +2016,7 @@ cli_cmd_volume_statedump_options_parse (const char **words, int wordcount,          if (!dict)                  goto out; -        ret = dict_set_str (dict, "options", gf_strdup (option_str)); +        ret = dict_set_dynstr (dict, "options", gf_strdup (option_str));          if (ret)                  goto out; diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c index 8c6fe92158d..3811ef69234 100644 --- a/libglusterfs/src/statedump.c +++ b/libglusterfs/src/statedump.c @@ -529,12 +529,8 @@ gf_proc_dump_parse_set_option (char *key, char *value)                            "matched key : %s\n", key);                  ret = write (gf_dump_fd, buf, strlen (buf)); -                /* warning suppression */ -                if (ret >= 0) { -                        ret = -1; -                        goto out; -                } - +                ret = -1; +                goto out;          }          opt_value = (strncasecmp (value, "yes", 3) ? @@ -618,11 +614,11 @@ gf_proc_dump_info (int signum)          } else                  strncpy (brick_name, "glusterdump", sizeof (brick_name)); -        ret = gf_proc_dump_options_init (brick_name); +        ret = gf_proc_dump_open (ctx->statedump_path, brick_name);          if (ret < 0)                  goto out; -        ret = gf_proc_dump_open (ctx->statedump_path, brick_name); +        ret = gf_proc_dump_options_init (brick_name);          if (ret < 0)                  goto out;  | 
