From cc839523364e47dea715cd7241772cd68f05f76c Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Mon, 17 Apr 2017 08:39:30 -0400 Subject: glusterd: Fix snapshot failure in non-root geo-rep setup Geo-replication session directory name has the form '__'. But in non-root geo-replication setup, while preparing geo-replication session directory name, glusterd is including 'user@' resulting in "__". Hence snapshot is failing to copy geo-rep specific session files. Fixing the same. Change-Id: Id214d3186e40997d2827a0bb60d3676ca2552df7 BUG: 1442760 Signed-off-by: Kotresh HR Reviewed-on: https://review.gluster.org/17067 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: Amar Tumballi CentOS-regression: Gluster Build System Reviewed-by: Aravinda VK --- xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'xlators/mgmt/glusterd') diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c index 684e262c79c..724dcb792ae 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c @@ -3501,6 +3501,7 @@ glusterd_get_geo_rep_session (char *slave_key, char *origin_volname, char *slave) { int32_t ret = -1; + int32_t len = 0; char *token = NULL; char *tok = NULL; char *temp = NULL; @@ -3569,8 +3570,10 @@ glusterd_get_geo_rep_session (char *slave_key, char *origin_volname, * 'root@' */ ip_temp = gf_strdup (ip); tok = strtok_r (ip_temp, "@", &save_ptr); - if (tok && !strcmp (tok, "root")) - ip_i = ip + 5; + len = strlen(tok); + tok = strtok_r (NULL, "@", &save_ptr); + if (tok != NULL) + ip_i = ip + len + 1; ret = snprintf (session, PATH_MAX, "%s_%s_%s", origin_volname, ip_i, slave_temp); -- cgit