summaryrefslogtreecommitdiffstats
path: root/xlators/storage/posix/src/posix-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/storage/posix/src/posix-common.c')
-rw-r--r--xlators/storage/posix/src/posix-common.c6
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;
}