Blob Blame History Raw
From cf2a4eb499d8e15fd745704295c317b2225203bc Mon Sep 17 00:00:00 2001
From: Kotresh HR <khiremat@redhat.com>
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 <khiremat@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/73574
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Tested-by: Venky Shankar <vshankar@redhat.com>
---
 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