From 8606249c1888c092c1d8eac022116f0b4358a07d Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Mon, 17 Apr 2017 08:39:30 -0400 Subject: [PATCH 306/316] 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. > 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 Change-Id: Id214d3186e40997d2827a0bb60d3676ca2552df7 BUG: 1445593 Signed-off-by: Kotresh HR Reviewed-on: https://code.engineering.redhat.com/gerrit/105176 Reviewed-by: Atin Mukherjee --- xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c index 26b2f73..c4cfc84 100644 --- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c @@ -3500,6 +3500,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; @@ -3568,8 +3569,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); -- 1.8.3.1