summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
diff options
context:
space:
mode:
authorRajesh Amaravathi <rajesh.amaravathi@gmail.com>2011-09-19 16:43:50 +0530
committerVijay Bellur <vijay@gluster.com>2011-09-19 04:39:10 -0700
commit8ad4d3f53000724389db6003ca6d6d777b880017 (patch)
tree32efa44f6bba22f47e2fb56d351fe4ab2e0734fc /xlators/mgmt/glusterd/src/glusterd-brick-ops.c
parent608f2d698569abc82cc671e81477e89e9c553bda (diff)
glusterd/top: volume top succeeds on partial brickpath
Rewrite of glusterd_volume_brickinfo_get in glusterd-utils.c An additional argument to glusterd_volume_brick_info_get_by_brick and glusterd_volume_brickinfo_get enables matching brick path in two ways: Complete or partial(ancestor and descendent paths matched). Change-Id: Ia87833a6f0c139599c3e40b59d60c64281b4084b BUG: 3271 Reviewed-on: http://review.gluster.com/162 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Shishir Gowda <shishirng@gluster.com> Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-brick-ops.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-brick-ops.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
index faf4960df..655f8a96a 100644
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
@@ -192,7 +192,8 @@ brick_val:
ret = glusterd_volume_brickinfo_get (brickinfo->uuid,
brickinfo->hostname,
brickinfo->path,
- &tmpvolinfo, &tmpbrkinfo);
+ &tmpvolinfo, &tmpbrkinfo,
+ GF_PATH_PARTIAL);
if (!ret) {
ret = -1;
snprintf (err_str, sizeof (err_str), "Brick: %s:%s, %s"
@@ -352,7 +353,9 @@ glusterd_handle_remove_brick (rpcsvc_request_t *req)
gf_log ("", GF_LOG_DEBUG, "Remove brick count %d brick: %s",
i, brick);
- ret = glusterd_volume_brickinfo_get_by_brick(brick, volinfo, &brickinfo);
+ ret = glusterd_volume_brickinfo_get_by_brick(brick, volinfo,
+ &brickinfo,
+ GF_PATH_COMPLETE);
if (ret) {
snprintf(err_str, 2048,"Incorrect brick %s for volume"
" %s", brick, cli_req.volname);
@@ -488,7 +491,8 @@ glusterd_op_perform_add_bricks (glusterd_volinfo_t *volinfo, int32_t count,
while (i <= count) {
ret = glusterd_volume_brickinfo_get_by_brick (brick, volinfo,
- &brickinfo);
+ &brickinfo,
+ GF_PATH_PARTIAL);
if (ret)
goto out;
@@ -531,7 +535,8 @@ glusterd_op_perform_remove_brick (glusterd_volinfo_t *volinfo, char *brick,
if (!dup_brick)
goto out;
- ret = glusterd_volume_brickinfo_get_by_brick (dup_brick, volinfo, &brickinfo);
+ ret = glusterd_volume_brickinfo_get_by_brick (dup_brick, volinfo,
+ &brickinfo, GF_PATH_COMPLETE);
if (ret)
goto out;
@@ -660,7 +665,8 @@ glusterd_op_stage_add_brick (dict_t *dict, char **op_errstr)
}
ret = glusterd_volume_brickinfo_get_by_brick (brick, volinfo,
- &brickinfo);
+ &brickinfo,
+ GF_PATH_PARTIAL);
if (!ret) {
gf_log ("", GF_LOG_ERROR, "Adding duplicate brick: %s",
brick);