From 6cd1f12ae58f1cace89104664a6d41b682b7ee88 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. > 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 (cherry picked from commit cc839523364e47dea715cd7241772cd68f05f76c) Change-Id: Id214d3186e40997d2827a0bb60d3676ca2552df7 BUG: 1443010 Signed-off-by: Kotresh HR Reviewed-on: https://review.gluster.org/17070 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System Reviewed-by: Atin Mukherjee CentOS-regression: Gluster Build System --- 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 c8af1ec21c4..21fd6e7c3b8 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