From 8c6700bc7bc78ed4754bf2e59fd28a40530d4e76 Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Mon, 4 Jul 2016 17:25:57 +0530 Subject: feature/bitrot: Show whether scrub is in progress/idle Backport of http://review.gluster.org/14864/ Bitrot scrub status shows whether the scrub is paused or active. It doesn't show whether the scrubber is actually scrubbing or waiting in the timer wheel for the next schedule. This patch shows this status with "In Progress" and "Idle" respectively. Change-Id: I995d8553d1ff166503ae1e7b46282fc3ba961f0b BUG: 1355635 Signed-off-by: Kotresh HR (cherry picked from commit f4757d256e3e00132ef204c01ed61f78f705ad6b) Reviewed-on: http://review.gluster.org/14900 Smoke: Gluster Build System CentOS-regression: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: Jeff Darcy --- xlators/mgmt/glusterd/src/glusterd-utils.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 0ea19438df7..354edbb0da5 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -8590,6 +8590,7 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) glusterd_volinfo_t *volinfo = NULL; int src_count = 0; int dst_count = 0; + int8_t scrub_running = 0; this = THIS; GF_ASSERT (this); @@ -8638,6 +8639,19 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) } } + memset (key, 0, 256); + snprintf (key, 256, "scrub-running-%d", src_count); + ret = dict_get_int8 (rsp_dict, key, &scrub_running); + if (!ret) { + memset (key, 0, 256); + snprintf (key, 256, "scrub-running-%d", src_count+dst_count); + ret = dict_set_int8 (aggr, key, scrub_running); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to set " + "scrub-running value"); + } + } + memset (key, 0, 256); snprintf (key, 256, "scrubbed-files-%d", src_count); ret = dict_get_uint64 (rsp_dict, key, &value); @@ -8809,6 +8823,7 @@ glusterd_bitrot_volume_node_rsp (dict_t *aggr, dict_t *rsp_dict) xlator_t *this = NULL; glusterd_conf_t *priv = NULL; glusterd_volinfo_t *volinfo = NULL; + int8_t scrub_running = 0; this = THIS; GF_ASSERT (this); @@ -8918,6 +8933,17 @@ glusterd_bitrot_volume_node_rsp (dict_t *aggr, dict_t *rsp_dict) } } + ret = dict_get_int8 (rsp_dict, "scrub-running", &scrub_running); + if (!ret) { + memset (key, 0, 256); + snprintf (key, 256, "scrub-running-%d", i); + ret = dict_set_uint64 (aggr, key, scrub_running); + if (ret) { + gf_msg_debug (this->name, 0, "Failed to set " + "scrub-running value"); + } + } + ret = dict_get_uint64 (rsp_dict, "scrubbed-files", &value); if (!ret) { memset (key, 0, 256); -- cgit