21ab4e
From 7f36372dc4b48c6c7cd703de4c6b3f9f48b5d70b Mon Sep 17 00:00:00 2001
3604df
From: Kotresh HR <khiremat@redhat.com>
3604df
Date: Mon, 17 Apr 2017 08:39:30 -0400
21ab4e
Subject: [PATCH 384/393] glusterd: Fix snapshot failure in non-root geo-rep
3604df
 setup
3604df
3604df
Geo-replication session directory name has the form
3604df
'<mastervol>_<slavehost>_<slavevol>'. But in non-root
3604df
geo-replication setup, while preparing geo-replication
3604df
session directory name, glusterd is including 'user@'
3604df
resulting in "<mastervol>_<user@slavehost>_<slavevol>".
3604df
Hence snapshot is failing to copy geo-rep specific
3604df
session files. Fixing the same.
3604df
3604df
> BUG: 1442760
3604df
> Signed-off-by: Kotresh HR <khiremat@redhat.com>
3604df
> Reviewed-on: https://review.gluster.org/17067
3604df
> Smoke: Gluster Build System <jenkins@build.gluster.org>
3604df
> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
3604df
> Reviewed-by: Amar Tumballi <amarts@redhat.com>
3604df
> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
3604df
> Reviewed-by: Aravinda VK <avishwan@redhat.com>
3604df
3604df
Change-Id: Id214d3186e40997d2827a0bb60d3676ca2552df7
21ab4e
BUG: 1438972
3604df
Signed-off-by: Kotresh HR <khiremat@redhat.com>
21ab4e
Reviewed-on: https://code.engineering.redhat.com/gerrit/103643
3604df
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
3604df
---
3604df
 xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c | 7 +++++--
3604df
 1 file changed, 5 insertions(+), 2 deletions(-)
3604df
3604df
diff --git a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c
3604df
index 26b2f73..c4cfc84 100644
3604df
--- a/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c
3604df
+++ b/xlators/mgmt/glusterd/src/glusterd-snapshot-utils.c
3604df
@@ -3500,6 +3500,7 @@ glusterd_get_geo_rep_session (char *slave_key, char *origin_volname,
3604df
                               char *slave)
3604df
 {
3604df
         int32_t         ret             =       -1;
3604df
+        int32_t         len             =       0;
3604df
         char            *token          =       NULL;
3604df
         char            *tok            =       NULL;
3604df
         char            *temp           =       NULL;
3604df
@@ -3568,8 +3569,10 @@ glusterd_get_geo_rep_session (char *slave_key, char *origin_volname,
3604df
          * 'root@' */
3604df
         ip_temp = gf_strdup (ip);
3604df
         tok = strtok_r (ip_temp, "@", &save_ptr);
3604df
-        if (tok && !strcmp (tok, "root"))
3604df
-                ip_i = ip + 5;
3604df
+        len = strlen(tok);
3604df
+        tok = strtok_r (NULL, "@", &save_ptr);
3604df
+        if (tok != NULL)
3604df
+                ip_i = ip + len + 1;
3604df
 
3604df
         ret = snprintf (session, PATH_MAX, "%s_%s_%s",
3604df
                         origin_volname, ip_i, slave_temp);
3604df
-- 
3604df
1.8.3.1
3604df