From 61a60de37e7fdfa0b9a9ec83c3edc7a94e4e0ed2 Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Garg Date: Fri, 4 Sep 2015 22:10:55 +0530 Subject: glusterd: Do not allow "detach-tier commit" unnecessarily Backport of: http://review.gluster.org/#/c/12107/ Currently when user execute gluster v detach-tier commit command without starting detach-tier or without giving force option then gluster will success this operation. Detach-tier commit should not allow without giving "force" optioin. >>Reviewed-on: http://review.gluster.org/12107 >>Tested-by: NetBSD Build System >>Tested-by: Gluster Build System >>Reviewed-by: Atin Mukherjee >>Reviewed-by: Dan Lambright Change-Id: Id161c288f6f3e0f6b298878a5c35a49fcbd9c6e3 BUG: 1259694 Signed-off-by: Gaurav Kumar Garg Reviewed-on: http://review.gluster.org/12108 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Dan Lambright Tested-by: Dan Lambright --- xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 30 ++++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'xlators') diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c index 0d5f2e179fa..834be85fb36 100644 --- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c @@ -1697,16 +1697,28 @@ glusterd_remove_brick_validate_bricks (gf1_op_commands cmd, int32_t brick_count, goto out; } /* Do not allow commit if the bricks are not decommissioned - * if its a remove brick commit + * if its a remove brick commit or detach-tier commit */ - if (cmd == GF_OP_CMD_COMMIT && !brickinfo->decommissioned) { - snprintf (msg, sizeof (msg), "Brick %s " - "is not decommissioned. " - "Use start or force option", - brick); - *errstr = gf_strdup (msg); - ret = -1; - goto out; + if (!brickinfo->decommissioned) { + if (cmd == GF_OP_CMD_COMMIT) { + snprintf (msg, sizeof (msg), "Brick %s " + "is not decommissioned. " + "Use start or force option", brick); + *errstr = gf_strdup (msg); + ret = -1; + goto out; + } + + if (cmd == GF_OP_CMD_DETACH_COMMIT) { + snprintf (msg, sizeof (msg), "Brick's in Hot " + "tier is not decommissioned yet. Use " + "gluster volume detach-tier " + " " + " command instead"); + *errstr = gf_strdup (msg); + ret = -1; + goto out; + } } if (glusterd_is_local_brick (THIS, volinfo, brickinfo)) -- cgit