diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/glusterfs.h | 2 | ||||
-rw-r--r-- | libglusterfs/src/mem-pool.c | 27 |
2 files changed, 18 insertions, 11 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 0d4240a2a..a3adf151b 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -376,6 +376,8 @@ struct _glusterfs_ctx { struct mem_pool *dict_pair_pool; struct mem_pool *dict_data_pool; + int mem_accounting; /* if value is other than 0, it + will be set */ }; typedef struct _glusterfs_ctx glusterfs_ctx_t; diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index 0cfd8bd71..7f20d6d4b 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -50,26 +50,31 @@ gf_mem_acct_is_enabled () void gf_mem_acct_enable_set () { - char *opt = NULL; - long val = -1; - #ifdef DEBUG gf_mem_acct_enable = 1; return; #endif + glusterfs_ctx_t *ctx = NULL; + char *opt = NULL; + long val = -1; - opt = getenv (GLUSTERFS_ENV_MEM_ACCT_STR); - - if (!opt) - return; + gf_mem_acct_enable = 0; - val = strtol (opt, NULL, 0); + ctx = glusterfs_ctx_get (); - if (val) - gf_mem_acct_enable = 0; - else + if (ctx->mem_accounting) { gf_mem_acct_enable = 1; + return; + } + opt = getenv (GLUSTERFS_ENV_MEM_ACCT_STR); + if (opt) { + val = strtol (opt, NULL, 0); + if (val) + gf_mem_acct_enable = 1; + } + + return; } void |