diff options
Diffstat (limited to 'xlators/storage/posix/src/posix-common.c')
| -rw-r--r-- | xlators/storage/posix/src/posix-common.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/xlators/storage/posix/src/posix-common.c b/xlators/storage/posix/src/posix-common.c index 507bfc20991..bcaad2703e9 100644 --- a/xlators/storage/posix/src/posix-common.c +++ b/xlators/storage/posix/src/posix-common.c @@ -1105,12 +1105,13 @@ posix_fini (xlator_t *this)          struct posix_private *priv = this->private;          if (!priv)                  return; -        this->private = NULL; -        if (priv->health_check) { +        LOCK (&priv->lock); +        if (priv->health_check_active) {                  priv->health_check_active = _gf_false;                  pthread_cancel (priv->health_check);                  priv->health_check = 0;          } +        UNLOCK (&priv->lock);          if (priv->disk_space_check) {                  priv->disk_space_check_active = _gf_false;                  pthread_cancel (priv->disk_space_check); @@ -1135,6 +1136,7 @@ posix_fini (xlator_t *this)          GF_FREE (priv->hostname);          GF_FREE (priv->trash_path);          GF_FREE (priv); +        this->private = NULL;          return;  }  | 
