From cf2a4eb499d8e15fd745704295c317b2225203bc Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Wed, 20 Apr 2016 23:49:39 +0530 Subject: [PATCH 111/139] glusterd/bitrot: Fix bit-rot scrub status Few of the dictionary values were not allocated and set. This patch allocates them and set. Upstream master: >Change-Id: Ic61c1209b238e45219793fd8bec92235adfbd013 >BUG: 1329211 >Reviewed-on: http://review.gluster.org/14120 Upstream release-3.7: >Change-Id: Icf52a98a9699c6bd0b2dff159626f87030c76d72 >BUG: 1332072 >Reviewed-on: http://review.gluster.org/14141 Change-Id: Iea340634049fa48da6f498959133daa698a75c5c BUG: 1299737 Signed-off-by: Kotresh HR Reviewed-on: https://code.engineering.redhat.com/gerrit/73574 Reviewed-by: Venky Shankar Tested-by: Venky Shankar --- xlators/mgmt/glusterd/src/glusterd-utils.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 1c6541c..8ed9ff1 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -8548,7 +8548,6 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, key, &node_uuid); if (!ret) { node_uuid_str = gf_strdup (node_uuid); - memset (key, 0, 256); snprintf (key, 256, "node-uuid-%d", src_count+dst_count); ret = dict_set_dynstr (aggr, key, node_uuid_str); @@ -8643,7 +8642,8 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, "bitrot_log_file", &bitd_log); if (!ret) { - ret = dict_set_str (aggr, "bitrot_log_file", bitd_log); + ret = dict_set_dynstr_with_alloc (aggr, "bitrot_log_file", + bitd_log); if (ret) { gf_msg_debug (this->name, 0, "Failed to set " "bitrot log file location"); @@ -8653,7 +8653,8 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, "scrub_log_file", &scrub_log); if (!ret) { - ret = dict_set_str (aggr, "scrub_log_file", scrub_log); + ret = dict_set_dynstr_with_alloc (aggr, "scrub_log_file", + scrub_log); if (ret) { gf_msg_debug (this->name, 0, "Failed to set " "scrubber log file location"); @@ -8663,7 +8664,8 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, "features.scrub-freq", &scrub_freq); if (!ret) { - ret = dict_set_str (aggr, "features.scrub-freq", scrub_freq); + ret = dict_set_dynstr_with_alloc (aggr, "features.scrub-freq", + scrub_freq); if (ret) { gf_msg_debug (this->name, 0, "Failed to set " "scrub-frequency value to dictionary"); @@ -8673,8 +8675,9 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, "features.scrub-throttle", &scrub_impact); if (!ret) { - ret = dict_set_str (aggr, "features.scrub-throttle", - scrub_impact); + ret = dict_set_dynstr_with_alloc (aggr, + "features.scrub-throttle", + scrub_impact); if (ret) { gf_msg_debug (this->name, 0, "Failed to set " "scrub-throttle value to dictionary"); @@ -8684,7 +8687,8 @@ glusterd_volume_bitrot_scrub_use_rsp_dict (dict_t *aggr, dict_t *rsp_dict) ret = dict_get_str (rsp_dict, "features.scrub", &scrub_state); if (!ret) { - ret = dict_set_str (aggr, "features.scrub", scrub_state); + ret = dict_set_dynstr_with_alloc (aggr, "features.scrub", + scrub_state); if (ret) { gf_msg_debug (this->name, 0, "Failed to set " "scrub state value to dictionary"); -- 1.7.1