diff options
author | Rajesh Amaravathi <rajesh.amaravathi@gmail.com> | 2011-09-19 16:43:50 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-09-19 04:39:10 -0700 |
commit | 8ad4d3f53000724389db6003ca6d6d777b880017 (patch) | |
tree | 32efa44f6bba22f47e2fb56d351fe4ab2e0734fc /xlators/mgmt/glusterd/src/glusterd-brick-ops.c | |
parent | 608f2d698569abc82cc671e81477e89e9c553bda (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.c | 16 |
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); |