diff options
author | hari gowtham <hgowtham@redhat.com> | 2017-11-24 11:47:01 +0530 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2017-12-01 05:57:28 +0000 |
commit | 48e3ae7482a7c70dc130dc7f8198636a87649d54 (patch) | |
tree | f1321e3c5cbb1faf59fcc70cb1736018dbfeee52 /xlators/mgmt/glusterd/src/glusterd-volume-ops.c | |
parent | 5529659dec7607bf9b94ea2195672ae553458785 (diff) |
Tier: Stop tierd for detach start
Problem: tierd was stopped only after detach commit
This makes the detach take a longer time. The detach
demotes the files to the cold brick and if the promotion
frequency is hit, then the tierd starts to promote files to
hot tier again.
Fix: stop tierd after detach start so the files get
demoted faster.
Note: the is_tier_enabled was not maintained properly.
That has been fixed too. some code clean up has been done.
Signed-off-by: hari gowtham <hgowtham@redhat.com>
Change-Id: I532f7410cea04fbb960105483810ea3560ca149b
BUG: 1446381
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-volume-ops.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index 0db91a30fff..a87dfc39eb7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -2729,6 +2729,16 @@ glusterd_stop_volume (glusterd_volinfo_t *volinfo) } } + /* call tier manager before the voluem status is set as stopped + * as tier uses that as a check in the manager + * */ + if (volinfo->type == GF_CLUSTER_TYPE_TIER) { + svc = &(volinfo->tierd.svc); + ret = svc->manager (svc, volinfo, PROC_START_NO_WAIT); + if (ret) + goto out; + } + glusterd_set_volume_status (volinfo, GLUSTERD_STATUS_STOPPED); ret = glusterd_store_volinfo (volinfo, GLUSTERD_VOLINFO_VER_AC_INCREMENT); @@ -2746,13 +2756,6 @@ glusterd_stop_volume (glusterd_volinfo_t *volinfo) goto out; } - if (volinfo->type == GF_CLUSTER_TYPE_TIER) { - svc = &(volinfo->tierd.svc); - ret = svc->manager (svc, volinfo, PROC_START_NO_WAIT); - if (ret) - goto out; - } - ret = glusterd_svcs_manager (volinfo); if (ret) { gf_msg (this->name, GF_LOG_ERROR, 0, |