summaryrefslogtreecommitdiff
path: root/0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch
diff options
context:
space:
mode:
Diffstat (limited to '0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch')
-rw-r--r--0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch92
1 files changed, 92 insertions, 0 deletions
diff --git a/0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch b/0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch
new file mode 100644
index 0000000..3aa441d
--- /dev/null
+++ b/0166-glusterd-svc-glusterd_svcs_stop-should-call-individu.patch
@@ -0,0 +1,92 @@
+From 79fff98f9ca5f815cf0227312b9a997d555dad29 Mon Sep 17 00:00:00 2001
+From: Mohammed Rafi KC <rkavunga@redhat.com>
+Date: Wed, 22 May 2019 13:32:23 +0530
+Subject: [PATCH 166/169] glusterd/svc: glusterd_svcs_stop should call
+ individual wrapper function
+
+glusterd_svcs_stop should call individual wrapper function to stop a
+daemon rather than calling glusterd_svc_stop. For example for shd,
+it should call glusterd_shdsvc_stop instead of calling basic API
+function to stop. Because the individual functions for each daemon
+could be doing some specific operation in their wrapper function.
+
+Upstream patch: https://review.gluster.org/#/c/glusterfs/+/22761/
+
+>Change-Id: Ie6d40590251ad470ef3901d1141ab7b22c3498f5
+>fixes: bz#1712741
+>Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
+
+Change-Id: I6df03e53f08c337d5d9b0e855a0b77894a2aacc9
+BUG: 1716865
+Signed-off-by: Mohammed Rafi KC <rkavunga@redhat.com>
+Reviewed-on: https://code.engineering.redhat.com/gerrit/172288
+Tested-by: RHGS Build Bot <nigelb@redhat.com>
+Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
+---
+ xlators/mgmt/glusterd/src/glusterd-shd-svc.c | 12 ++++++++++--
+ xlators/mgmt/glusterd/src/glusterd-svc-helper.c | 10 +++++-----
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
+index 75f9a07..981cc87 100644
+--- a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
++++ b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
+@@ -656,10 +656,18 @@ glusterd_shdsvc_stop(glusterd_svc_t *svc, int sig)
+ int pid = -1;
+
+ conf = THIS->private;
++ GF_VALIDATE_OR_GOTO("glusterd", conf, out);
+ GF_VALIDATE_OR_GOTO("glusterd", svc, out);
+ svc_proc = svc->svc_proc;
+- GF_VALIDATE_OR_GOTO("glusterd", svc_proc, out);
+- GF_VALIDATE_OR_GOTO("glusterd", conf, out);
++ if (!svc_proc) {
++ /*
++ * This can happen when stop was called on a volume that is not shd
++ * compatible.
++ */
++ gf_msg_debug("glusterd", 0, "svc_proc is null, ie shd already stopped");
++ ret = 0;
++ goto out;
++ }
+
+ /* Get volinfo->shd from svc object */
+ shd = cds_list_entry(svc, glusterd_shdsvc_t, svc);
+diff --git a/xlators/mgmt/glusterd/src/glusterd-svc-helper.c b/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
+index f7be394..6a3ca52 100644
+--- a/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
++++ b/xlators/mgmt/glusterd/src/glusterd-svc-helper.c
+@@ -86,25 +86,25 @@ glusterd_svcs_stop(glusterd_volinfo_t *volinfo)
+ priv = this->private;
+ GF_ASSERT(priv);
+
+- ret = glusterd_svc_stop(&(priv->nfs_svc), SIGKILL);
++ ret = priv->nfs_svc.stop(&(priv->nfs_svc), SIGKILL);
+ if (ret)
+ goto out;
+
+- ret = glusterd_svc_stop(&(priv->quotad_svc), SIGTERM);
++ ret = priv->quotad_svc.stop(&(priv->quotad_svc), SIGTERM);
+ if (ret)
+ goto out;
+
+ if (volinfo) {
+- ret = glusterd_svc_stop(&(volinfo->shd.svc), PROC_START_NO_WAIT);
++ ret = volinfo->shd.svc.stop(&(volinfo->shd.svc), SIGTERM);
+ if (ret)
+ goto out;
+ }
+
+- ret = glusterd_svc_stop(&(priv->bitd_svc), SIGTERM);
++ ret = priv->bitd_svc.stop(&(priv->bitd_svc), SIGTERM);
+ if (ret)
+ goto out;
+
+- ret = glusterd_svc_stop(&(priv->scrub_svc), SIGTERM);
++ ret = priv->scrub_svc.stop(&(priv->scrub_svc), SIGTERM);
+ out:
+ return ret;
+ }
+--
+1.8.3.1
+