summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorKotresh HR <khiremat@redhat.com>2015-07-06 15:05:43 +0530
committerKrishnan Parthasarathi <kparthas@redhat.com>2015-07-07 04:04:40 -0700
commit91e1d0dd620941c91794d697a8388cd524d2e3bf (patch)
treefe28c14fa05ee33b8ea2006860af2aa5393b9d9f /xlators
parentdf580c4431de6fbf10017b891059583a52a406eb (diff)
downloadglusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.tar.gz
glusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.tar.xz
glusterfs-91e1d0dd620941c91794d697a8388cd524d2e3bf.zip
glusterd/geo-rep: Fix failure of geo-rep pause
Geo-replication pause fails if one or more of the nodes in the master cluster is not part of master volume. If the master volume bricks are not part of the node, it should be ignored. The check is added to fix the issue. Change-Id: Iba57d66b6db6919f42a95dd66e6db9ad1b21503b BUG: 1240229 Signed-off-by: Kotresh HR <khiremat@redhat.com> Reviewed-on: http://review.gluster.org/11549 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Avra Sengupta <asengupt@redhat.com> Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-geo-rep.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
index 2398b6a8c7..d30929eade 100644
--- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
+++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
@@ -3013,13 +3013,26 @@ glusterd_op_stage_gsync_set (dict_t *dict, char **op_errstr)
ret = glusterd_op_verify_gsync_running (volinfo, slave,
conf_path, op_errstr);
- if (ret)
- goto out;
+ if (ret) {
+ ret = glusterd_get_local_brickpaths (volinfo,
+ &path_list);
+ if (path_list) {
+ ret = -1;
+ goto out;
+ }
+ }
+
if (!is_force) {
ret = gd_pause_resume_validation (type, volinfo, slave,
statefile, op_errstr);
- if (ret)
- goto out;
+ if (ret) {
+ ret = glusterd_get_local_brickpaths (volinfo,
+ &path_list);
+ if (path_list) {
+ ret = -1;
+ goto out;
+ }
+ }
}
break;