diff options
Diffstat (limited to 'xlators/features/index/src/index.c')
| -rw-r--r-- | xlators/features/index/src/index.c | 21 | 
1 files changed, 9 insertions, 12 deletions
diff --git a/xlators/features/index/src/index.c b/xlators/features/index/src/index.c index 5e723e5e4c6..ed89c02ae74 100644 --- a/xlators/features/index/src/index.c +++ b/xlators/features/index/src/index.c @@ -2460,13 +2460,6 @@ fini (xlator_t *this)          priv = this->private;          if (!priv)                  goto out; - -        priv->down = _gf_true; -        pthread_cond_broadcast (&priv->cond); -        if (priv->thread) { -                gf_thread_cleanup_xint (priv->thread); -                priv->thread = 0; -        }          this->private = NULL;          LOCK_DESTROY (&priv->lock);          pthread_cond_destroy (&priv->cond); @@ -2478,11 +2471,8 @@ fini (xlator_t *this)          if (priv->complete_watchlist)                  dict_unref (priv->complete_watchlist);          GF_FREE (priv); - -        if (this->local_pool) { -                mem_pool_destroy (this->local_pool); -                this->local_pool = NULL; -        } +        mem_pool_destroy (this->local_pool); +        this->local_pool = NULL;  out:          return;  } @@ -2552,6 +2542,13 @@ notify (xlator_t *this, int event, void *data, ...)          if (!priv)                  return 0; +        switch (event) { +        case GF_EVENT_CLEANUP: +                priv->down = _gf_true; +                pthread_cond_broadcast (&priv->cond); +                break; +        } +          ret = default_notify (this, event, data);          return ret;  }  | 
