diff options
| -rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 3 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/tier.c | 9 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 25 | 
3 files changed, 30 insertions, 7 deletions
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 11164b6586a..7e9ba11fb26 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -3374,9 +3374,6 @@ gf_defrag_start_crawl (void *data)                          if (ret)                                  goto out; -                        ret = gf_defrag_fix_layout (this, defrag, &loc, -                                                    fix_layout, -                                                    migrate_data);                  }          }          gf_log ("DHT", GF_LOG_INFO, "crawling file-system completed"); diff --git a/xlators/cluster/dht/src/tier.c b/xlators/cluster/dht/src/tier.c index b37c8edfdd5..e857dace038 100644 --- a/xlators/cluster/dht/src/tier.c +++ b/xlators/cluster/dht/src/tier.c @@ -1372,10 +1372,11 @@ tier_start (xlator_t *this, gf_defrag_info_t *defrag)                  if (defrag->cmd == GF_DEFRAG_CMD_START_DETACH_TIER) {                          ret = 0;                          defrag->defrag_status = -                                        GF_DEFRAG_STATUS_COMPLETE; -                        gf_msg_debug (this->name, 0, -                                      "defrag->defrag_cmd == " -                                      "GF_DEFRAG_CMD_START_DETACH_TIER"); +                                GF_DEFRAG_STATUS_COMPLETE; +                        gf_msg (this->name, GF_LOG_DEBUG, 0, +                                DHT_MSG_LOG_TIER_ERROR, +                                "defrag->defrag_cmd == " +                                "GF_DEFRAG_CMD_START_DETACH_TIER");                          goto out;                  } diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c index efd70581f46..67119a9b53b 100644 --- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c @@ -2046,6 +2046,31 @@ glusterd_op_stage_remove_brick (dict_t *dict, char **op_errstr)                                  GD_MSG_VOL_NOT_TIER, "%s", errstr);                          goto out;                  } +                ret = glusterd_remove_brick_validate_bricks (cmd, brick_count, +                                                             dict, volinfo, +                                                             &errstr); +                if (ret) +                        goto out; + +                /* If geo-rep is configured, for this volume, it should be +                 * stopped. +                 */ +                param.volinfo = volinfo; +                ret = glusterd_check_geo_rep_running (¶m, op_errstr); +                if (ret || param.is_active) { +                        ret = -1; +                        goto out; +                } + +                if (volinfo->rebal.defrag_status == GF_DEFRAG_STATUS_STARTED) { +                        ret = -1; +                        errstr = gf_strdup("Detach is in progress. Please " +                                           "retry after completion"); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                GD_MSG_OIP_RETRY_LATER, "%s", errstr); +                        goto out; +                } +                break;          case GF_OP_CMD_COMMIT:                  if (volinfo->decommission_in_progress) {  | 
