diff options
author | hari <hgowtham@redhat.com> | 2016-04-28 19:36:25 +0530 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2016-05-05 07:45:54 -0700 |
commit | 3f07e9324d8fa62a6231f387270d8e7559ac71e0 (patch) | |
tree | 6d6587c7a77ffedb028b67036323724c360d5a17 /xlators | |
parent | 0f73da2362d0b045f1c610974b1567d262a12df0 (diff) |
Tier/glusterd: Resetting the tier status value to not started
Problem: during a volume restart or tier start force, the
value of tier status is set as started irrespective of the result.
Fix: The appropriate value of status is set during the restart of
rebalance function.
Change-Id: I6164f0add48542a57dee059e80fa0f9bb036dbef
BUG: 1315666
Signed-off-by: hari <hgowtham@redhat.com>
Reviewed-on: http://review.gluster.org/14106
Tested-by: mohammed rafi kc <rkavunga@redhat.com>
Tested-by: hari gowtham <hari.gowtham005@gmail.com>
Smoke: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: mohammed rafi kc <rkavunga@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index c6d2dd52ebd..cd72ca06dd2 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -7295,6 +7295,8 @@ glusterd_volume_defrag_restart (glusterd_volinfo_t *volinfo, char *op_errstr, case GF_DEFRAG_STATUS_NOT_STARTED: ret = glusterd_handle_defrag_start (volinfo, op_errstr, len, cmd, cbk, volinfo->rebal.op); + if (ret) + volinfo->rebal.defrag_status = GF_DEFRAG_STATUS_FAILED; break; default: gf_msg (this->name, GF_LOG_ERROR, 0, @@ -7306,6 +7308,7 @@ glusterd_volume_defrag_restart (glusterd_volinfo_t *volinfo, char *op_errstr, } out: return ret; + } void @@ -7367,9 +7370,6 @@ glusterd_restart_rebalance_for_volume (glusterd_volinfo_t *volinfo) int ret = -1; char op_errstr[PATH_MAX]; - if (!volinfo->rebal.defrag_cmd) - return -1; - if (!gd_should_i_start_rebalance (volinfo)) { /* Store the rebalance-id and rebalance command even if @@ -7380,11 +7380,17 @@ glusterd_restart_rebalance_for_volume (glusterd_volinfo_t *volinfo) * Storing this is needed for having 'volume status' * work correctly. */ + volinfo->rebal.defrag_status = GF_DEFRAG_STATUS_NOT_STARTED; if (volinfo->type == GF_CLUSTER_TYPE_TIER) glusterd_store_perform_node_state_store (volinfo); return 0; } + if (!volinfo->rebal.defrag_cmd) { + volinfo->rebal.defrag_status = GF_DEFRAG_STATUS_FAILED; + return -1; + } + ret = glusterd_volume_defrag_restart (volinfo, op_errstr, PATH_MAX, volinfo->rebal.defrag_cmd, volinfo->rebal.op == GD_OP_REMOVE_BRICK ? @@ -7399,7 +7405,6 @@ glusterd_restart_rebalance_for_volume (glusterd_volinfo_t *volinfo) volinfo->decommission_in_progress = 1; } } - return ret; } int |