summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2017-08-29 00:16:22 +0200
committerJeff Darcy <jeff@pl.atyp.us>2017-08-29 12:37:40 +0000
commitea8c9af0b4a91ef927bbeee9afdfa7d1cea6369f (patch)
tree7f336db98172f277dbefcd929a8a3948ade86e82 /xlators
parent83990996736c72f3131f66df35ea7bf2b3d3b5fa (diff)
mem-pool: track glusterfs_ctx_t in struct mem_pool
In order to generate statedumps per glusterfs_ctx_t, it is needed to place all the memory pools in a structure that the context can reach. The 'struct mem_pool' has been extended with a 'list_head owner' that is linked with the glusterfs_ctx_t->mempool_list. All callers of mem_pool_new() have been updated to pass the current glusterfs_ctx_t along. This context is needed to add the new memory pool to the list and for grabbing the ctx->lock while updating the glusterfs_ctx_t->mempool_list. Updates: #307 Change-Id: Ia9384424d8d1630ef3efc9d5d523bf739c356c6e Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: https://review.gluster.org/18075 Smoke: Gluster Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/cluster/ec/src/ec-method.c2
-rw-r--r--xlators/nfs/server/src/nfs3.c3
-rw-r--r--xlators/performance/io-cache/src/io-cache.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/xlators/cluster/ec/src/ec-method.c b/xlators/cluster/ec/src/ec-method.c
index e0dd8e7f1a0..a2dd2bd3731 100644
--- a/xlators/cluster/ec/src/ec-method.c
+++ b/xlators/cluster/ec/src/ec-method.c
@@ -310,7 +310,7 @@ ec_method_init(xlator_t *xl, ec_matrix_list_t *list, uint32_t columns,
INIT_LIST_HEAD(&list->lru);
int32_t err;
- list->pool = mem_pool_new_fn(sizeof(ec_matrix_t) +
+ list->pool = mem_pool_new_fn(xl->ctx, sizeof(ec_matrix_t) +
sizeof(ec_matrix_row_t) * columns +
sizeof(uint32_t) * columns * columns,
128, "ec_matrix_t");
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
index 040d31604bf..b053eb3250e 100644
--- a/xlators/nfs/server/src/nfs3.c
+++ b/xlators/nfs/server/src/nfs3.c
@@ -5786,7 +5786,8 @@ nfs3_init_state (xlator_t *nfsx)
localpool = nfs->memfactor * GF_NFS_CONCURRENT_OPS_MULT;
gf_msg_trace (GF_NFS3, 0, "local pool: %d", localpool);
- nfs3->localpool = mem_pool_new (nfs3_call_state_t, localpool);
+ nfs3->localpool = mem_pool_new_ctx (nfsx->ctx, nfs3_call_state_t,
+ localpool);
if (!nfs3->localpool) {
gf_msg (GF_NFS3, GF_LOG_ERROR, ENOMEM, NFS_MSG_NO_MEMORY,
"local mempool creation failed");
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c
index 896394231f9..3e2e96b3fef 100644
--- a/xlators/performance/io-cache/src/io-cache.c
+++ b/xlators/performance/io-cache/src/io-cache.c
@@ -1146,7 +1146,7 @@ ioc_readv (call_frame_t *frame, xlator_t *this, fd_t *fd,
if (!ioc_inode->cache.page_table) {
ioc_inode->cache.page_table
= rbthash_table_init
- (IOC_PAGE_TABLE_BUCKET_COUNT,
+ (this->ctx, IOC_PAGE_TABLE_BUCKET_COUNT,
ioc_hashfn, NULL, 0,
table->mem_pool);