summaryrefslogtreecommitdiffstats
path: root/xlators/system
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/system')
-rw-r--r--xlators/system/posix-acl/src/posix-acl.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/xlators/system/posix-acl/src/posix-acl.c b/xlators/system/posix-acl/src/posix-acl.c
index a0a47134a..7acd1b5f0 100644
--- a/xlators/system/posix-acl/src/posix-acl.c
+++ b/xlators/system/posix-acl/src/posix-acl.c
@@ -1944,6 +1944,30 @@ err:
int
fini (xlator_t *this)
{
+ struct posix_acl_conf *conf = NULL;
+ struct posix_acl *minacl = NULL;
+
+ conf = this->private;
+ if (!conf)
+ return 0;
+ this->private = NULL;
+
+ minacl = conf->minimal_acl;
+
+ LOCK (&conf->acl_lock);
+ {
+ conf->minimal_acl = NULL;
+ }
+ UNLOCK (&conf->acl_lock);
+
+ LOCK_DESTROY (&conf->acl_lock);
+
+ if (minacl)
+ GF_FREE (minacl);
+
+ if (conf)
+ GF_FREE (conf);
+
return 0;
}