From 362f90b5612c0f38894684d1d6f3bd66a31fe5b1 Mon Sep 17 00:00:00 2001 From: hari Date: Thu, 28 Apr 2016 19:36:25 +0530 Subject: Tier/glusterd: Resetting the tier status value to not started back-port of : http://review.gluster.org/#/c/14106/ back-port of : http://review.gluster.org/#/c/14229/ 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 >Change-Id: Ie4345bd7ce1d458574e36b70fe8994b3d758396a >BUG: 1316808 >Signed-off-by: hari >Reviewed-on: http://review.gluster.org/14229 >Smoke: Gluster Build System >Tested-by: hari gowtham >NetBSD-regression: NetBSD Build System >CentOS-regression: Gluster Build System >Reviewed-by: Atin Mukherjee Change-Id: I8e8e0662535c9dbe09eb6c7078422b40c218b473 BUG: 1347509 Signed-off-by: hari gowtham Reviewed-on: http://review.gluster.org/14749 Tested-by: hari gowtham Reviewed-by: Atin Mukherjee Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System --- xlators/mgmt/glusterd/src/glusterd-utils.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'xlators') diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 9acd837d455..454ffdc5603 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -7352,6 +7352,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, @@ -7363,6 +7365,7 @@ glusterd_volume_defrag_restart (glusterd_volinfo_t *volinfo, char *op_errstr, } out: return ret; + } void @@ -7424,9 +7427,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 @@ -7437,11 +7437,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 ? @@ -7456,7 +7462,6 @@ glusterd_restart_rebalance_for_volume (glusterd_volinfo_t *volinfo) volinfo->decommission_in_progress = 1; } } - return ret; } int -- cgit