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 0d4240a2a6e..a3adf151b19 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 0cfd8bd712a..7f20d6d4b36 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  | 
