summaryrefslogtreecommitdiffstats
path: root/glusterfsd
diff options
context:
space:
mode:
authorMohit Agrawal <moagrawa@redhat.com>2018-02-18 08:14:35 +0530
committerAmar Tumballi <amarts@redhat.com>2018-02-19 19:30:56 +0000
commite3e7cdbde5463ff6d20af52329a784ca629c6aef (patch)
tree43887efd6a9c624ac204ad6bba6065baba2ab1cf /glusterfsd
parent8d9961e63786cf8a9bb9e2f4140ab9a77f1ccbe3 (diff)
Revert "glusterfsd: Memleak in glusterfsd process while brick mux is on"
There are still remain some code paths where cleanup is required while brick mux is on.I will upload a new patch after resolve all code paths. This reverts commit b313d97faa766443a7f8128b6e19f3d2f1b267dd. BUG: 1544090 Change-Id: I26ef1d29061092bd9a409c8933d5488e968ed90e Signed-off-by: Mohit Agrawal <moagrawa@redhat.com>
Diffstat (limited to 'glusterfsd')
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c65
-rw-r--r--glusterfsd/src/glusterfsd.c4
-rw-r--r--glusterfsd/src/glusterfsd.h3
3 files changed, 2 insertions, 70 deletions
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c
index 5d0c83fd1a6..355b25f8aab 100644
--- a/glusterfsd/src/glusterfsd-mgmt.c
+++ b/glusterfsd/src/glusterfsd-mgmt.c
@@ -193,70 +193,6 @@ glusterfs_autoscale_threads (glusterfs_ctx_t *ctx, int incr)
(void) event_reconfigure_threads (pool, pool->eventthreadcount+incr);
}
-static int
-xlator_mem_free (xlator_t *xl)
-{
- volume_opt_list_t *vol_opt = NULL;
- volume_opt_list_t *tmp = NULL;
-
- if (!xl)
- return 0;
-
- GF_FREE (xl->name);
- GF_FREE (xl->type);
- xl->name = NULL;
- xl->type = NULL;
-
- if (xl->options) {
- dict_ref (xl->options);
- dict_unref (xl->options);
- xl->options = NULL;
- }
-
- list_for_each_entry_safe (vol_opt, tmp, &xl->volume_options, list) {
- list_del_init (&vol_opt->list);
- GF_FREE (vol_opt);
- }
-
- return 0;
-}
-
-void
-xlator_call_fini (xlator_t *this) {
- if (!this)
- return;
- xlator_call_fini (this->next);
- this->fini (this);
-}
-
-void
-xlator_mem_cleanup (xlator_t *this) {
- xlator_list_t *list = this->children;
- xlator_t *trav = list->xlator;
- inode_table_t *inode_table = NULL;
- xlator_t *prev = trav;
-
- inode_table = this->itable;
-
- xlator_call_fini (trav);
-
- while (prev) {
- trav = prev->next;
- xlator_mem_free (prev);
- prev = trav;
- }
-
- if (inode_table) {
- inode_table_destroy (inode_table);
- this->itable = NULL;
- }
- if (this->fini) {
- this->fini (this);
- xlator_mem_free (this);
- }
-}
-
-
int
glusterfs_handle_terminate (rpcsvc_request_t *req)
{
@@ -323,7 +259,6 @@ glusterfs_handle_terminate (rpcsvc_request_t *req)
gf_log (THIS->name, GF_LOG_INFO, "detaching not-only"
" child %s", xlator_req.name);
top->notify (top, GF_EVENT_CLEANUP, victim);
- xlator_mem_cleanup (victim);
}
err:
if (!lockflag)
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index dfaf9c09c6d..added9a08c2 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -1455,13 +1455,13 @@ cleanup_and_exit (int signum)
trav = NULL;
if (ctx->active)
trav = ctx->active->top;
- /*while (trav) {
+ while (trav) {
if (should_call_fini(ctx,trav)) {
THIS = trav;
trav->fini (trav);
}
trav = trav->next;
- }*/
+ }
/* NOTE: Only the least significant 8 bits i.e (signum & 255)
will be available to parent process on calling exit() */
diff --git a/glusterfsd/src/glusterfsd.h b/glusterfsd/src/glusterfsd.h
index 420edfd3df5..9a0281e78a4 100644
--- a/glusterfsd/src/glusterfsd.h
+++ b/glusterfsd/src/glusterfsd.h
@@ -128,8 +128,5 @@ int glusterfs_volume_top_read_perf (uint32_t blk_size, uint32_t blk_count,
void
glusterfs_autoscale_threads (glusterfs_ctx_t *ctx, int incr);
-void
-xlator_mem_cleanup (xlator_t *this);
-
extern glusterfs_ctx_t *glusterfsd_ctx;
#endif /* __GLUSTERFSD_H__ */