diff options
Diffstat (limited to 'xlators/features/bit-rot/src/bitd/bit-rot.c')
-rw-r--r-- | xlators/features/bit-rot/src/bitd/bit-rot.c | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/xlators/features/bit-rot/src/bitd/bit-rot.c b/xlators/features/bit-rot/src/bitd/bit-rot.c index a88fa57662e..9ec2e42bbf6 100644 --- a/xlators/features/bit-rot/src/bitd/bit-rot.c +++ b/xlators/features/bit-rot/src/bitd/bit-rot.c @@ -1565,7 +1565,16 @@ int br_scrubber_status_get (xlator_t *this, dict_t **dict) { - int ret = -1; + int ret = -1; + char key[256] = {0,}; + br_private_t *priv = NULL; + struct br_scrub_stats *scrub_stats = NULL; + + priv = this->private; + + GF_VALIDATE_OR_GOTO ("bit-rot", priv, out); + + scrub_stats = &priv->scrub_stat; ret = br_get_bad_objects_list (this, dict); if (ret) { @@ -1573,6 +1582,40 @@ br_scrubber_status_get (xlator_t *this, dict_t **dict) "files"); } + memset (key, 0, 256); + snprintf (key, 256, "scrubbed-files"); + ret = dict_set_uint32 (*dict, key, scrub_stats->scrubbed_files); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to setting scrubbed file " + "entry to the dictionary"); + } + + memset (key, 0, 256); + snprintf (key, 256, "unsigned-files"); + ret = dict_set_uint32 (*dict, key, scrub_stats->unsigned_files); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to set unsigned file count" + " entry to the dictionary"); + } + + memset (key, 0, 256); + snprintf (key, 256, "scrub-duration"); + ret = dict_set_uint32 (*dict, key, scrub_stats->scrub_duration); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to set scrub duration" + " entry to the dictionary"); + } + + memset (key, 0, 256); + snprintf (key, 256, "last-scrub-time"); + ret = dict_set_dynstr_with_alloc (*dict, key, + scrub_stats->last_scrub_time); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to set " + "last scrub time value"); + } + +out: return ret; } |