mgmt/glusterd: allow add brick in pure replicate setup
Currently in pure replicate if the replica count is 4 and there are 4 bricks, then suppose 3 bricks are removed then add brick works only if 3 bricks are provided. Providing lesser bricks fails. This patch fixes that scenario. Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com> Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 1574 ([glusterfs-3.1.0qa18]: add-brick to a replicate volume fails if a brick is removed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1574
This commit is contained in:
parent
273f898364
commit
613a6369d6
@ -1276,6 +1276,7 @@ glusterd_handle_add_brick (rpcsvc_request_t *req)
|
||||
glusterd_volinfo_t tmpvolinfo = {{0},};
|
||||
int lock_fail = 0;
|
||||
glusterd_op_t cli_op = GD_OP_ADD_BRICK;
|
||||
int total_bricks = 0;
|
||||
|
||||
this = THIS;
|
||||
GF_ASSERT(this);
|
||||
@ -1357,11 +1358,13 @@ glusterd_handle_add_brick (rpcsvc_request_t *req)
|
||||
if (!brick_count || !volinfo->sub_count)
|
||||
goto brick_val;
|
||||
|
||||
total_bricks = volinfo->brick_count + brick_count;
|
||||
/* If the brick count is less than sub_count then, allow add-brick only for
|
||||
plain replicate volume since in plain stripe brick_count becoming less than
|
||||
the sub_count is not allowed */
|
||||
if (volinfo->brick_count < volinfo->sub_count && (volinfo->type == GF_CLUSTER_TYPE_REPLICATE) ) {
|
||||
if ((volinfo->sub_count - volinfo->brick_count) == brick_count)
|
||||
if (volinfo->brick_count < volinfo->sub_count &&
|
||||
(volinfo->type == GF_CLUSTER_TYPE_REPLICATE)) {
|
||||
if (total_bricks <= volinfo->sub_count)
|
||||
goto brick_val;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user