diff options
Diffstat (limited to 'xlators/debug/io-stats/src/io-stats.c')
-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; |