diff options
-rw-r--r-- | glusterfsd/src/glusterfsd.c | 3 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handshake.c | 3 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rpc-ops.c | 11 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-sm.c | 9 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-syncop.c | 4 |
6 files changed, 28 insertions, 4 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index c980e7bc640..4edb5894c60 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -2196,14 +2196,12 @@ glusterfs_process_volfp (glusterfs_ctx_t *ctx, FILE *fp) ret = glusterfs_graph_prepare (graph, ctx); if (ret) { - glusterfs_graph_destroy (graph); goto out; } ret = glusterfs_graph_activate (graph, ctx); if (ret) { - glusterfs_graph_destroy (graph); goto out; } @@ -2215,6 +2213,7 @@ out: fclose (fp); if (ret && !ctx->active) { + glusterfs_graph_destroy (graph); /* there is some error in setting up the first graph itself */ cleanup_and_exit (0); } diff --git a/xlators/mgmt/glusterd/src/glusterd-handshake.c b/xlators/mgmt/glusterd/src/glusterd-handshake.c index 756e48965c2..b53e0968398 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handshake.c +++ b/xlators/mgmt/glusterd/src/glusterd-handshake.c @@ -2201,5 +2201,8 @@ glusterd_peer_dump_version (xlator_t *this, struct rpc_clnt *rpc, unlock: rcu_read_unlock (); out: + if (ret && frame) + STACK_DESTROY (frame->root); + return ret; } diff --git a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c index e670c98a7c9..e50158e11a7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c @@ -532,6 +532,7 @@ out: glusterd_friend_sm (); glusterd_op_sm (); } + if (ctx) glusterd_destroy_probe_ctx (ctx); free (rsp.hostname);//malloced by xdr @@ -1715,6 +1716,9 @@ glusterd_rpc_friend_update (call_frame_t *frame, xlator_t *this, out: GF_FREE (req.friends.friends_val); + if (ret && dummy_frame) + STACK_DESTROY (frame->root); + gf_msg_debug ("glusterd", 0, "Returning %d", ret); return ret; } @@ -1750,6 +1754,9 @@ glusterd_cluster_lock (call_frame_t *frame, xlator_t *this, (xdrproc_t)xdr_gd1_mgmt_cluster_lock_req); out: gf_msg_debug ("glusterd", 0, "Returning %d", ret); + + if (ret && dummy_frame) + STACK_DESTROY (frame->root); return ret; } @@ -1936,6 +1943,10 @@ glusterd_cluster_unlock (call_frame_t *frame, xlator_t *this, (xdrproc_t)xdr_gd1_mgmt_cluster_unlock_req); out: gf_msg_debug (this ? this->name : "glusterd", 0, "Returning %d", ret); + + if (ret && dummy_frame) + STACK_DESTROY (frame->root); + return ret; } diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.c b/xlators/mgmt/glusterd/src/glusterd-sm.c index 791405dc40e..ea8cdc29794 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-sm.c @@ -327,6 +327,9 @@ glusterd_ac_friend_add (glusterd_friend_sm_event_t *event, void *ctx) out: rcu_read_unlock (); + if (ret && frame) + STACK_DESTROY (frame->root); + gf_msg_debug ("glusterd", 0, "Returning with %d", ret); return ret; } @@ -408,6 +411,9 @@ out: dict_unref (dict); gf_msg_debug ("glusterd", 0, "Returning with %d", ret); + if (ret && frame) + STACK_DESTROY (frame->root); + return ret; } @@ -486,6 +492,9 @@ out: gf_msg_debug ("glusterd", 0, "Returning with %d", ret); + if (ret && frame) + STACK_DESTROY (frame->root); + return ret; } diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index 5f04f7cdffd..c17a2e10a83 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -4001,7 +4001,6 @@ glusterd_store_retrieve_peers (xlator_t *this) struct dirent *entry = NULL; char path[PATH_MAX] = {0,}; glusterd_peerinfo_t *peerinfo = NULL; - char *hostname = NULL; gf_store_handle_t *shandle = NULL; char filepath[PATH_MAX] = {0,}; gf_store_iter_t *iter = NULL; @@ -4084,7 +4083,6 @@ glusterd_store_retrieve_peers (xlator_t *this) &op_errno); } if (op_errno != GD_STORE_EOF) { - GF_FREE(hostname); goto out; } diff --git a/xlators/mgmt/glusterd/src/glusterd-syncop.c b/xlators/mgmt/glusterd/src/glusterd-syncop.c index ac4870d516c..bb385d4775d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-syncop.c +++ b/xlators/mgmt/glusterd/src/glusterd-syncop.c @@ -215,6 +215,8 @@ out: iobref_unref (iobref); iobuf_unref (iobuf); + if (ret && frame) + STACK_DESTROY (frame->root); return ret; } @@ -411,6 +413,7 @@ gd_syncop_mgmt_v3_lock (glusterd_op_t op, dict_t *op_ctx, (xdrproc_t) xdr_gd1_mgmt_v3_lock_req); out: + GF_FREE (req.dict.dict_val); gf_msg_debug ("glusterd", 0, "Returning %d", ret); return ret; } @@ -510,6 +513,7 @@ gd_syncop_mgmt_v3_unlock (dict_t *op_ctx, glusterd_peerinfo_t *peerinfo, (xdrproc_t) xdr_gd1_mgmt_v3_unlock_req); out: + GF_FREE (req.dict.dict_val); gf_msg_debug ("glusterd", 0, "Returning %d", ret); return ret; } |