summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-handler.c
diff options
context:
space:
mode:
authorKrutika Dhananjay <kdhananj@redhat.com>2012-10-22 15:30:49 +0530
committerAnand Avati <avati@redhat.com>2013-02-03 12:35:09 -0800
commit9708bd1f922ca38973cba65b4890c67c2edc6e2b (patch)
tree7a8853809eb1244952718a77e9786d3392b7402a /xlators/mgmt/glusterd/src/glusterd-handler.c
parent6b262d20940b088a1d72ad5518cc4908a7316b5a (diff)
glusterd: do dict unref after sending reply to cli
This patch channelizes dict unrefs of dictionaries created from the cli req during volume ops to one common function - glusterd_to_cli() - which is guaranteed to be called irrespective of whether the command succeeds or fails. This patch also removes extra unrefs at a few places. Change-Id: Ic8ba7166387b5dfd1f5ae860539e1b7093a94662 BUG: 861044 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com> Reviewed-on: http://review.gluster.org/4003 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-handler.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-handler.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c
index 0993d2763..fb94bba89 100644
--- a/xlators/mgmt/glusterd/src/glusterd-handler.c
+++ b/xlators/mgmt/glusterd/src/glusterd-handler.c
@@ -1130,9 +1130,6 @@ out:
glusterd_to_cli (req, &rsp, NULL, 0, NULL,
(xdrproc_t)xdr_gf_cli_rsp, dict);
- if (dict)
- dict_unref (dict);
-
return ret;
}
@@ -1261,14 +1258,13 @@ glusterd_handle_reset_volume (rpcsvc_request_t *req)
out:
glusterd_friend_sm ();
glusterd_op_sm ();
+
if (ret) {
if (err_str[0] == '\0')
snprintf (err_str, sizeof (err_str),
"Operation failed");
ret = glusterd_op_send_cli_response (cli_op, ret, 0, req,
dict, err_str);
- if (dict)
- dict_unref (dict);
}
return ret;
@@ -1460,9 +1456,6 @@ out:
snprintf (msg, sizeof (msg), "Operation failed");
glusterd_to_cli (req, &cli_rsp, NULL, 0, NULL,
(xdrproc_t)xdr_gf_cli_rsp, dict);
- if (dict)
- dict_unref (dict);
-
ret = 0; //sent error to cli, prevent second reply
}
@@ -2134,14 +2127,13 @@ out:
glusterd_op_sm ();
free (cli_req.dict.dict_val);
+
if (ret) {
if (err_str[0] == '\0')
snprintf (err_str, sizeof (err_str),
"Operation failed");
ret = glusterd_op_send_cli_response (cli_op, ret, 0, req,
dict, err_str);
- if (dict)
- dict_unref (dict);
}
gf_log (this->name, GF_LOG_DEBUG, "Returning %d", ret);
@@ -2986,8 +2978,6 @@ out:
"Operation failed");
ret = glusterd_op_send_cli_response (cli_op, ret, 0, req,
dict, err_str);
- if (dict)
- dict_unref (dict);
}
free (cli_req.dict.dict_val);
@@ -3060,8 +3050,6 @@ out:
"Operation failed");
ret = glusterd_op_send_cli_response (cli_op, ret, 0, req,
dict, err_str);
- if (dict)
- dict_unref (dict);
}
free (cli_req.dict.dict_val);