diff options
| author | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-05-20 18:23:58 +0530 |
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2015-05-30 07:05:06 -0700 |
| commit | 0308c7a2800f52810093af780c42b6c6616c2aed (patch) | |
| tree | 11912e3a54a35e2d9d01f96622da68667c819ef2 /xlators/mgmt/glusterd/src/glusterd-rebalance.c | |
| parent | af7e88ad4a3a1cd0b965fdbadb59c923e98550bc (diff) | |
glusterd: fix double-free of rebalance process' rpc object
Change-Id: I0c79c4de47a160b1ecf3a8994eedc02e3f5002a9
BUG: 1225318
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/10872
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-on: http://review.gluster.org/10932
Tested-by: NetBSD Build System
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-rebalance.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rebalance.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-rebalance.c b/xlators/mgmt/glusterd/src/glusterd-rebalance.c index 9111c07b8fc..f126e8f0b1f 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rebalance.c +++ b/xlators/mgmt/glusterd/src/glusterd-rebalance.c @@ -149,10 +149,7 @@ __glusterd_defrag_notify (struct rpc_clnt *rpc, void *mydata, glusterd_store_perform_node_state_store (volinfo); - if (defrag->rpc) { - glusterd_rpc_clnt_unref (priv, defrag->rpc); - defrag->rpc = NULL; - } + glusterd_defrag_rpc_put (defrag); if (defrag->cbk_fn) defrag->cbk_fn (volinfo, volinfo->rebal.defrag_status); @@ -339,8 +336,9 @@ glusterd_rebalance_rpc_create (glusterd_volinfo_t *volinfo, goto out; //rpc obj for rebalance process already in place. - if (defrag->rpc) { + if (glusterd_defrag_rpc_get (defrag)) { ret = 0; + glusterd_defrag_rpc_put (defrag); goto out; } GLUSTERD_GET_DEFRAG_SOCK_FILE (sockfile, volinfo); |
