diff options
Diffstat (limited to 'xlators/cluster')
-rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 3 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 14 | ||||
-rw-r--r-- | xlators/cluster/dht/src/tier.c | 6 |
3 files changed, 22 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index fbb4eaee4e5..54ad68246fb 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -6417,7 +6417,8 @@ dht_notify (xlator_t *this, int event, void *data, ...) { if (defrag->is_exiting) goto unlock; - if (cmd == GF_DEFRAG_CMD_STATUS) + if ((cmd == GF_DEFRAG_CMD_STATUS) || + (cmd == GF_DEFRAG_CMD_STATUS_TIER)) gf_defrag_status_get (defrag, output); else if (cmd == GF_DEFRAG_CMD_START_DETACH_TIER) gf_defrag_start_detach_tier(defrag); diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 69d6f86019f..767b457ce77 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -2820,6 +2820,8 @@ gf_defrag_status_get (gf_defrag_info_t *defrag, dict_t *dict) uint64_t lookup = 0; uint64_t failures = 0; uint64_t skipped = 0; + uint64_t promoted = 0; + uint64_t demoted = 0; char *status = ""; double elapsed = 0; struct timeval end = {0,}; @@ -2837,6 +2839,8 @@ gf_defrag_status_get (gf_defrag_info_t *defrag, dict_t *dict) lookup = defrag->num_files_lookedup; failures = defrag->total_failures; skipped = defrag->skipped; + promoted = defrag->total_files_promoted; + demoted = defrag->total_files_demoted; gettimeofday (&end, NULL); @@ -2845,6 +2849,16 @@ gf_defrag_status_get (gf_defrag_info_t *defrag, dict_t *dict) if (!dict) goto log; + ret = dict_set_uint64 (dict, "promoted", promoted); + if (ret) + gf_log (THIS->name, GF_LOG_WARNING, + "failed to set promoted count"); + + ret = dict_set_uint64 (dict, "demoted", demoted); + if (ret) + gf_log (THIS->name, GF_LOG_WARNING, + "failed to set demoted count"); + ret = dict_set_uint64 (dict, "files", files); if (ret) gf_log (THIS->name, GF_LOG_WARNING, diff --git a/xlators/cluster/dht/src/tier.c b/xlators/cluster/dht/src/tier.c index 72e8e47837e..2387a02b00c 100644 --- a/xlators/cluster/dht/src/tier.c +++ b/xlators/cluster/dht/src/tier.c @@ -365,6 +365,12 @@ tier_migrate_using_query_file (void *_args) per_link_status = -1; goto error; } + + if (query_cbk_args->is_promotion) + defrag->total_files_promoted++; + else + defrag->total_files_demoted++; + error: loc_wipe(&loc); |