From e3e7cdbde5463ff6d20af52329a784ca629c6aef Mon Sep 17 00:00:00 2001 From: Mohit Agrawal Date: Sun, 18 Feb 2018 08:14:35 +0530 Subject: 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 --- xlators/storage/posix/src/posix-common.c | 47 ++++++++++++++++++------------- xlators/storage/posix/src/posix-helpers.c | 1 - 2 files changed, 28 insertions(+), 20 deletions(-) (limited to 'xlators/storage/posix/src') diff --git a/xlators/storage/posix/src/posix-common.c b/xlators/storage/posix/src/posix-common.c index f1fa81e056b..345d35e3e9a 100644 --- a/xlators/storage/posix/src/posix-common.c +++ b/xlators/storage/posix/src/posix-common.c @@ -105,7 +105,6 @@ extern char *marker_xattrs[]; (lutimes (path, tv)) #endif - int32_t posix_priv (xlator_t *this) { @@ -148,6 +147,9 @@ posix_notify (xlator_t *this, void *data, ...) { + struct posix_private *priv = NULL; + + priv = this->private; switch (event) { case GF_EVENT_PARENT_UP: @@ -155,6 +157,31 @@ posix_notify (xlator_t *this, /* Tell the parent that posix xlator is up */ default_notify (this, GF_EVENT_CHILD_UP, data); } + break; + case GF_EVENT_CLEANUP: + if (priv->health_check) { + priv->health_check_active = _gf_false; + pthread_cancel (priv->health_check); + priv->health_check = 0; + } + if (priv->disk_space_check) { + priv->disk_space_check_active = _gf_false; + pthread_cancel (priv->disk_space_check); + priv->disk_space_check = 0; + } + if (priv->janitor) { + (void) gf_thread_cleanup_xint (priv->janitor); + priv->janitor = 0; + } + if (priv->fsyncer) { + (void) gf_thread_cleanup_xint (priv->fsyncer); + priv->fsyncer = 0; + } + if (priv->mount_lock) { + (void) sys_closedir (priv->mount_lock); + priv->mount_lock = NULL; + } + break; default: /* */ @@ -1106,24 +1133,6 @@ posix_fini (xlator_t *this) if (!priv) return; this->private = NULL; - if (priv->health_check) { - priv->health_check_active = _gf_false; - pthread_cancel (priv->health_check); - priv->health_check = 0; - } - if (priv->disk_space_check) { - priv->disk_space_check_active = _gf_false; - pthread_cancel (priv->disk_space_check); - priv->disk_space_check = 0; - } - if (priv->janitor) { - (void) gf_thread_cleanup_xint (priv->janitor); - priv->janitor = 0; - } - if (priv->fsyncer) { - (void) gf_thread_cleanup_xint (priv->fsyncer); - priv->fsyncer = 0; - } /*unlock brick dir*/ if (priv->mount_lock) (void) sys_closedir (priv->mount_lock); diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index 377389d22a3..56c9b4afe94 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -2060,7 +2060,6 @@ abort: gf_log (THIS->name, GF_LOG_INFO, "detaching not-only " " child %s", priv->base_path); top->notify (top, GF_EVENT_CLEANUP, victim); - xlator_mem_cleanup (victim); } } -- cgit