diff options
author | shishir gowda <shishirng@gluster.com> | 2012-04-24 10:39:31 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-04-25 04:06:11 -0700 |
commit | 8be3e656aa58e790c301c9078afdbd4bd4909d92 (patch) | |
tree | 3ece1b9a977df9040b68a0cd69f6748155b54aa1 /xlators/mgmt | |
parent | bd892b972eb5df5d3f48637cc473f9622684087d (diff) |
glusterd/rebalance: Remove state dependency on rpc event
Status is updated by event_notify handshake by the rebalance process.
If there is disconnect, before rebalance process, only then the
state is moved to failure.
Change-Id: I334055397c3d38688dbef653826bc07ac47a1911
BUG: 813167
Signed-off-by: shishir gowda <shishirng@gluster.com>
Reviewed-on: http://review.gluster.com/3165
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'xlators/mgmt')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rebalance.c | 48 |
1 files changed, 8 insertions, 40 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-rebalance.c b/xlators/mgmt/glusterd/src/glusterd-rebalance.c index 9ed6af66741..7e35f06dd12 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rebalance.c +++ b/xlators/mgmt/glusterd/src/glusterd-rebalance.c @@ -51,38 +51,6 @@ int32_t glusterd3_1_brick_op_cbk (struct rpc_req *req, struct iovec *iov, int count, void *myframe); -int -glusterd_defrag_update_state (glusterd_volinfo_t *volinfo, - glusterd_defrag_info_t *defrag) -{ - int ret = -1; - int cmd = 0; - - GF_ASSERT (volinfo); - GF_ASSERT (defrag); - - if (volinfo->defrag_status == GF_DEFRAG_STATUS_NOT_STARTED) { - goto out; - } - - LOCK (&defrag->lock); - { - cmd = defrag->cmd; - if ((cmd == GF_DEFRAG_CMD_START) || (cmd == - GF_DEFRAG_CMD_START_FORCE) || (cmd == - GF_DEFRAG_CMD_START_LAYOUT_FIX)) - volinfo->defrag_status = GF_DEFRAG_STATUS_COMPLETE; - else if (cmd == GF_DEFRAG_CMD_STOP) - volinfo->defrag_status = GF_DEFRAG_STATUS_STOPPED; - } - UNLOCK (&defrag->lock); - - ret = 0; -out: - gf_log ("glusterd", GF_LOG_DEBUG, "Returning %d", ret); - return ret; -} - void glusterd_rebalance_cmd_attempted_log (int cmd, char *volname) { @@ -213,14 +181,14 @@ glusterd_defrag_notify (struct rpc_clnt *rpc, void *mydata, UNLOCK (&defrag->lock); if (!glusterd_is_service_running (pidfile, NULL)) { - glusterd_defrag_update_state (volinfo, defrag); - } else { - volinfo->defrag_status = GF_DEFRAG_STATUS_FAILED; - } - - /* Success or failure, Reset cmd in volinfo */ - - volinfo->defrag_cmd = 0; + if (volinfo->defrag_status == + GF_DEFRAG_STATUS_STARTED) { + volinfo->defrag_status = + GF_DEFRAG_STATUS_FAILED; + } else { + volinfo->defrag_cmd = 0; + } + } glusterd_store_volinfo (volinfo, GLUSTERD_VOLINFO_VER_AC_INCREMENT); |