summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
diff options
context:
space:
mode:
authorMohammed Rafi KC <rkavunga@redhat.com>2015-09-07 14:46:33 +0530
committerDan Lambright <dlambrig@redhat.com>2015-10-09 10:00:11 -0700
commitd777b2feaf55347177d6786657d68cc0547f7f73 (patch)
treefa3d3bc517fb43299f232b6e962aa24d67d11ca5 /xlators/mgmt/glusterd/src/glusterd-brick-ops.c
parent9e0c2c9d5e9b4f5df644911e29be4a611e0d2d42 (diff)
tiering/glusterd: keep afr/ec xlators name constant
afr uses the translator name for locking purpose, so it is mandatory to keep afr/ec xlators name constant across graph change currently when a tier is attached, afr names are appended either with hot or cold. ie that breaks the above mentioned constraint. Backport of> >Change-Id: I3699dcdaa8190bab3ba81cbc01e8fa126d37ba0d >BUG: 1261276 >Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> >Reviewed-on: http://review.gluster.org/12134 >Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com> >Tested-by: Gluster Build System <jenkins@build.gluster.com> >Reviewed-by: Dan Lambright <dlambrig@redhat.com> >Tested-by: Dan Lambright <dlambrig@redhat.com> (cherry picked from commit 4ad9bc5faca60528345f1e9c95c22bd8402162c0) Change-Id: I7bf5f22f112f1df1c05a0a8503d56029509d6292 BUG: 1261744 Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com> Reviewed-on: http://review.gluster.org/12323 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-brick-ops.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-brick-ops.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
index 982e96b4970..dbd7264da56 100644
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
@@ -2319,7 +2319,8 @@ glusterd_op_remove_brick (dict_t *dict, char **op_errstr)
int start_remove = 0;
uint32_t commit_hash = 0;
int defrag_cmd = 0;
-
+ int detach_commit = 0;
+ void *tier_info = NULL;
this = THIS;
GF_ASSERT (this);
@@ -2443,6 +2444,7 @@ glusterd_op_remove_brick (dict_t *dict, char **op_errstr)
case GF_OP_CMD_DETACH_COMMIT:
case GF_OP_CMD_DETACH_COMMIT_FORCE:
glusterd_op_perform_detach_tier (volinfo);
+ detach_commit = 1;
/* fall through */
case GF_OP_CMD_COMMIT_FORCE:
@@ -2532,6 +2534,13 @@ glusterd_op_remove_brick (dict_t *dict, char **op_errstr)
goto out;
i++;
}
+
+ if (detach_commit) {
+ /* Clear related information from volinfo */
+ tier_info = ((void *)(&volinfo->tier_info));
+ memset (tier_info, 0, sizeof (volinfo->tier_info));
+ }
+
if (start_remove)
volinfo->rebal.dict = dict_ref (bricks_dict);
@@ -2625,9 +2634,8 @@ glusterd_op_remove_brick (dict_t *dict, char **op_errstr)
if (GLUSTERD_STATUS_STARTED == volinfo->status)
ret = glusterd_svcs_manager (volinfo);
}
-
out:
- if (ret && err_str[0] && op_errstr)
+ if (ret && err_str[0] && op_errstr)
*op_errstr = gf_strdup (err_str);
GF_FREE (brick_tmpstr);