diff options
Diffstat (limited to 'xlators/cluster/dht')
| -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 20ad4f2bd72..8309b317017 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -6482,7 +6482,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 9c42af934e4..fcb005ecc3d 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -2911,6 +2911,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,}; @@ -2928,6 +2930,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); @@ -2936,6 +2940,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 2526604eaba..bf481601bd8 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); |
