summaryrefslogtreecommitdiffstats
path: root/xlators/features/bit-rot/src/stub/bit-rot-stub.c
diff options
context:
space:
mode:
authorMohit Agrawal <moagrawa@redhat.com>2018-05-23 09:10:11 +0530
committerShyamsundar Ranganathan <srangana@redhat.com>2018-05-25 02:05:37 +0000
commitb679fd4b73d9ec039029088769722887b61d750a (patch)
tree1fba7b4d16dea3ffa8808475d5d5cb44a3256bd1 /xlators/features/bit-rot/src/stub/bit-rot-stub.c
parent7b95d5a4b3988757bf8c91f82dcaf86ed3da6875 (diff)
Revert "glusterfsd: Memleak in glusterfsd process while brick mux is on"
Updates: bz#1582286 This reverts commit 7c3cc485054e4ede1efb358552135b432fb7047a. Change-Id: I831d646112bcfa13d0c2153482ad00ff1b23aa6c Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
Diffstat (limited to 'xlators/features/bit-rot/src/stub/bit-rot-stub.c')
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.c b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
index 830357070d6..76a4c3f6962 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub.c
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
@@ -229,6 +229,18 @@ notify (xlator_t *this, int event, void *data, ...)
if (!priv)
return 0;
+ switch (event) {
+ case GF_EVENT_CLEANUP:
+ if (priv->signth) {
+ (void) gf_thread_cleanup_xint (priv->signth);
+ priv->signth = 0;
+ }
+ if (priv->container.thread) {
+ (void) gf_thread_cleanup_xint (priv->container.thread);
+ priv->container.thread = 0;
+ }
+ break;
+ }
default_notify (this, event, data);
return 0;
}
@@ -251,7 +263,6 @@ fini (xlator_t *this)
"Could not cancel sign serializer thread");
goto out;
}
- priv->signth = 0;
while (!list_empty (&priv->squeue)) {
sigstub = list_first_entry (&priv->squeue,
@@ -273,19 +284,12 @@ fini (xlator_t *this)
goto out;
}
- priv->container.thread = 0;
-
while (!list_empty (&priv->container.bad_queue)) {
stub = list_first_entry (&priv->container.bad_queue, call_stub_t,
list);
list_del_init (&stub->list);
call_stub_destroy (stub);
- }
-
- if (priv->local_pool) {
- mem_pool_destroy (priv->local_pool);
- priv->local_pool = NULL;
- }
+ };
pthread_mutex_destroy (&priv->container.bad_lock);
pthread_cond_destroy (&priv->container.bad_cond);