summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/mgmt/glusterd')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c13
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 43a4898536b..99b01e32915 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -7225,6 +7225,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,
@@ -7236,6 +7238,7 @@ glusterd_volume_defrag_restart (glusterd_volinfo_t *volinfo, char *op_errstr,
}
out:
return ret;
+
}
void
@@ -7297,9 +7300,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
@@ -7310,11 +7310,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 ?
@@ -7329,7 +7335,6 @@ glusterd_restart_rebalance_for_volume (glusterd_volinfo_t *volinfo)
volinfo->decommission_in_progress = 1;
}
}
-
return ret;
}
int