summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorRajesh Amaravathi <rajesh@gluster.com>2011-09-27 16:25:58 +0530
committerVijay Bellur <vijay@gluster.com>2011-09-29 09:16:13 -0700
commitf3a6752cc455676d6e1f946b513636d991825da8 (patch)
tree873f5b0baa7de5b9471192873fc531393bd92009 /xlators
parent6d1e6a5b7c447d612684de1a75b6701b1f628fb6 (diff)
glusterd: allow non-related directories with same prefix
Earlier, using two directories with names like /test and /test1 failed volume creation. This patch sees that the next character is checked to be '/' to conclude that they are recursive. Eg: /test and /test2 succeed, while /test and /test/alpha does not. Change-Id: Idee1e15b7e0a0d0965d1aea910b52f1da286d64b BUG: 3645 Reviewed-on: http://review.gluster.com/511 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amar@gluster.com> Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-brick-ops.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c11
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volume-ops.c2
3 files changed, 10 insertions, 5 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
index 75087d547..c61d18f66 100644
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
@@ -202,7 +202,7 @@ brick_val:
if (!ret) {
ret = -1;
snprintf (err_str, sizeof (err_str), "Brick: %s:%s, %s"
- " one of the arguments contain the other",
+ " one of the bricks contain the other",
tmpbrkinfo->hostname, tmpbrkinfo->path, brick);
goto out;
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index e27d2209f..d2305df1e 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -756,14 +756,19 @@ glusterd_volume_brickinfo_get (uuid_t uuid, char *hostname, char *path,
gf_log (THIS->name, GF_LOG_ERROR,
"given path %s lies within brick %s",
path, brickiter->path);
+ *brickinfo = brickiter;
+ ret = 0;
+ break;
} else if (path[smaller_path] == '/') {
gf_log (THIS->name, GF_LOG_ERROR,
"brick %s is a part of %s",
brickiter->path, path);
+ *brickinfo = brickiter;
+ ret = 0;
+ break;
+ } else {
+ ret = -1;
}
- *brickinfo = brickiter;
- ret = 0;
- break;
}
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
index a335a98cd..6888fd9d5 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
@@ -180,7 +180,7 @@ glusterd_handle_create_volume (rpcsvc_request_t *req)
if (!ret) {
ret = -1;
snprintf (err_str, sizeof (err_str), "Brick: %s:%s, %s"
- " one of the arguments contain the other",
+ " one of the bricks contain the other",
tmpbrkinfo->hostname, tmpbrkinfo->path, brick);
goto out;
}