diff options
| -rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 105 | 
1 files changed, 43 insertions, 62 deletions
diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index d4dd786ab78..0a702d5a9b6 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -2352,32 +2352,26 @@ io_stats_forget (xlator_t *this, inode_t *inode)  }  int -reconfigure (xlator_t *this, dict_t *options) +iostats_configure_options (xlator_t *this, dict_t *options, +                           struct ios_conf *conf)  { -        struct ios_conf    *conf = NULL; -        char               *str = NULL;          int                 ret = 0;          char               *log_str = NULL; -        glusterfs_ctx_t     *ctx = NULL; - -        if (!this || !this->private) -                return -1; - -        conf = this->private; -        ret = dict_get_str (options, "dump-fd-stats", &str); -        if (ret == 0) { -                ret = gf_string2boolean (str, &conf->dump_fd_stats); -                if (ret == -1) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "'dump-fd-stats' takes only boolean arguments"); -                        return -1; -                } +        GF_ASSERT (this); +        GF_ASSERT (options); +        GF_ASSERT (conf); -                if (conf->dump_fd_stats) { -			gf_log (this->name, GF_LOG_DEBUG, -				"enabling dump-fd-stats"); -                } +        ret = dict_get_str_boolean (options, "dump-fd-stats", _gf_false); +        if (ret == -1) { +                gf_log (this->name, GF_LOG_ERROR, +                        "'dump-fd-stats' takes only boolean arguments"); +        } else { +                conf->dump_fd_stats = ret; +                if (conf->dump_fd_stats) +			gf_log (this->name, GF_LOG_DEBUG, "enabling dump-fd-stats"); +                else +			gf_log (this->name, GF_LOG_DEBUG, "disabling dump-fd-stats");          }          ret = dict_get_str_boolean (options, "latency-measurement", 0); @@ -2388,14 +2382,15 @@ reconfigure (xlator_t *this, dict_t *options)                                  conf->measure_latency, ret);                  }                  conf->measure_latency = ret; +        } else { +                gf_log (this->name, GF_LOG_ERROR, +                        "'latency-measurement' takes only boolean arguments");          } -        ctx = glusterfs_ctx_get (); -        if (!ctx) -                return -1;          ret = dict_get_str (options, "log-level", &log_str);          if (!ret) { -                if (!is_gf_log_command(this, "trusted.glusterfs.set-log-level", log_str)) { +                if (!is_gf_log_command(this, "trusted.glusterfs.set-log-level", +                                       log_str)) {                          gf_log (this->name, GF_LOG_DEBUG,                                 "changing log-level to %s", log_str);                  } @@ -2403,6 +2398,25 @@ reconfigure (xlator_t *this, dict_t *options)          return 0;  } +int +reconfigure (xlator_t *this, dict_t *options) +{ +        struct ios_conf    *conf = NULL; +        glusterfs_ctx_t     *ctx = NULL; + +        if (!this || !this->private) +                return -1; + +        conf = this->private; + +        iostats_configure_options (this, options, conf); +        ctx = glusterfs_ctx_get (); +        if (!ctx) +                return -1; + +        return 0; +} +  int32_t  mem_acct_init (xlator_t *this)  { @@ -2412,7 +2426,7 @@ mem_acct_init (xlator_t *this)                  return ret;          ret = xlator_mem_acct_init (this, gf_io_stats_mt_end + 1); -         +          if (ret != 0) {                  gf_log (this->name, GF_LOG_ERROR, "Memory accounting init"                          " failed"); @@ -2427,9 +2441,6 @@ init (xlator_t *this)  {          dict_t             *options = NULL;          struct ios_conf    *conf = NULL; -        char               *str = NULL; -        int                 ret = 0; -        char               *log_str = NULL;          int                 i = 0;          if (!this) @@ -2465,8 +2476,8 @@ init (xlator_t *this)          gettimeofday (&conf->incremental.started_at, NULL);          for (i = 0; i <IOS_STATS_TYPE_MAX; i++) { -                conf->list[i].iosstats = GF_CALLOC (1,  -                                         sizeof(*conf->list[i].iosstats),  +                conf->list[i].iosstats = GF_CALLOC (1, +                                         sizeof(*conf->list[i].iosstats),                                           gf_io_stats_mt_ios_stat);                  if (!conf->list[i].iosstats) { @@ -2494,37 +2505,7 @@ init (xlator_t *this)  		LOCK_INIT (&conf->thru_list[i].lock);          } -        ret = dict_get_str (options, "dump-fd-stats", &str); -        if (ret == 0) { -                ret = gf_string2boolean (str, &conf->dump_fd_stats); -                if (ret == -1) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "'dump-fd-stats' takes only boolean arguments"); -                        return -1; -                } - -                if (conf->dump_fd_stats) { -			gf_log (this->name, GF_LOG_DEBUG, -				"enabling dump-fd-stats"); -                } -        } - -        ret = dict_get_str_boolean (options, "latency-measurement", 0); -        if (ret != -1) { -                conf->measure_latency = ret; -                if (conf->measure_latency) -                        gf_log (this->name, GF_LOG_DEBUG, -                                "enabling latency measurement"); -        } - -        ret = dict_get_str (options, "log-level", &log_str); -        if (!ret) { -                if (!is_gf_log_command(this, "trusted.glusterfs.set-log-level", log_str)) { -                        gf_log (this->name, GF_LOG_DEBUG, -                               "changing log-level to %s", log_str); -                } -        } - +        iostats_configure_options (this, options, conf);          this->private = conf;          return 0;  | 
