summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/mem-pool.c6
-rw-r--r--libglusterfs/src/stack.h4
-rw-r--r--libglusterfs/src/xlator.c3
-rw-r--r--libglusterfs/src/xlator.h3
4 files changed, 11 insertions, 5 deletions
diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c
index f94723b..2662dc7 100644
--- a/libglusterfs/src/mem-pool.c
+++ b/libglusterfs/src/mem-pool.c
@@ -385,7 +385,7 @@ mem_get0 (struct mem_pool *mem_pool)
void *ptr = NULL;
if (!mem_pool) {
- gf_log ("mem-pool", GF_LOG_ERROR, "invalid argument");
+ gf_log_callingfn ("mem-pool", GF_LOG_ERROR, "invalid argument");
return NULL;
}
@@ -406,7 +406,7 @@ mem_get (struct mem_pool *mem_pool)
struct mem_pool **pool_ptr = NULL;
if (!mem_pool) {
- gf_log ("mem-pool", GF_LOG_ERROR, "invalid argument");
+ gf_log_callingfn ("mem-pool", GF_LOG_ERROR, "invalid argument");
return NULL;
}
@@ -500,7 +500,7 @@ mem_put (void *ptr)
struct mem_pool *pool = NULL;
if (!ptr) {
- gf_log ("mem-pool", GF_LOG_ERROR, "invalid argument");
+ gf_log_callingfn ("mem-pool", GF_LOG_ERROR, "invalid argument");
return;
}
diff --git a/libglusterfs/src/stack.h b/libglusterfs/src/stack.h
index c840405..220eab4 100644
--- a/libglusterfs/src/stack.h
+++ b/libglusterfs/src/stack.h
@@ -155,7 +155,7 @@ FRAME_DESTROY (call_frame_t *frame)
mem_put (frame);
if (local)
- GF_FREE (local);
+ mem_put (local);
}
@@ -184,7 +184,7 @@ STACK_DESTROY (call_stack_t *stack)
mem_put (stack);
if (local)
- GF_FREE (local);
+ mem_put (local);
}
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c
index 01475f5..ec20029 100644
--- a/libglusterfs/src/xlator.c
+++ b/libglusterfs/src/xlator.c
@@ -430,6 +430,9 @@ xlator_fini_rec (xlator_t *xl)
xl->fini (xl);
+ if (xl->local_pool)
+ mem_pool_destroy (xl->local_pool);
+
THIS = old_THIS;
} else {
gf_log (xl->name, GF_LOG_DEBUG, "No fini() found");
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h
index 9767ad0..c0b56a7 100644
--- a/libglusterfs/src/xlator.h
+++ b/libglusterfs/src/xlator.h
@@ -830,6 +830,9 @@ struct _xlator {
struct mem_acct mem_acct;
uint64_t winds;
char switched;
+
+ /* for the memory pool of 'frame->local' */
+ struct mem_pool *local_pool;
};
#define xlator_has_parent(xl) (xl->parents != NULL)