summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammed Rafi KC <rkavunga@redhat.com>2019-05-14 23:12:44 +0530
committergluster-ant <bugzilla-bot@gluster.org>2019-05-14 23:12:44 +0530
commit38ad6d92d4c4d5b507c814cdcd14270e25ff24dd (patch)
tree1bcceb229ec601adcf8e40eb298d7c0e099a7ba3
parent79c63544411992063c90cd91015ebd0c18215cba (diff)
downloadglusterfs-38ad6d92d4c4d5b507c814cdcd14270e25ff24dd.tar.gz
glusterfs-38ad6d92d4c4d5b507c814cdcd14270e25ff24dd.tar.xz
glusterfs-38ad6d92d4c4d5b507c814cdcd14270e25ff24dd.zip
glusterd/shd: Optimize the glustershd manager to send reconfigure
Traditionally all svc manager will execute process stop and then followed by start each time when they called. But that is not required by shd, because the attach request implemented in the shd multiplex has the intelligence to check whether a detach is required prior to attaching the graph. So there is no need to send an explicit detach request if we are sure that the next call is an attach request Change-Id: I9157c8dcaffdac038f73286bcf5646a3f1d3d8ec fixes: bz#1710054 Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
-rw-r--r--libglusterfs/src/graph.c1
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-shd-svc.c9
2 files changed, 5 insertions, 5 deletions
diff --git a/libglusterfs/src/graph.c b/libglusterfs/src/graph.c
index f65f680db9..437283b797 100644
--- a/libglusterfs/src/graph.c
+++ b/libglusterfs/src/graph.c
@@ -1488,7 +1488,6 @@ glusterfs_process_svc_detach(glusterfs_ctx_t *ctx, gf_volfile_t *volfile_obj)
parent_graph->last_xl = glusterfs_get_last_xlator(parent_graph);
parent_graph->xl_count -= graph->xl_count;
parent_graph->leaf_count -= graph->leaf_count;
- default_notify(xl, GF_EVENT_PARENT_DOWN, xl);
parent_graph->id++;
ret = 0;
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
index ce68a0f07c..ebf7e3a8e6 100644
--- a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
+++ b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
@@ -311,10 +311,11 @@ glusterd_shdsvc_manager(glusterd_svc_t *svc, void *data, int flags)
*/
ret = svc->stop(svc, SIGTERM);
} else if (volinfo) {
- ret = svc->stop(svc, SIGTERM);
- if (ret)
- goto out;
-
+ if (volinfo->status != GLUSTERD_STATUS_STARTED) {
+ ret = svc->stop(svc, SIGTERM);
+ if (ret)
+ goto out;
+ }
if (volinfo->status == GLUSTERD_STATUS_STARTED) {
ret = svc->start(svc, flags);
if (ret)