diff options
Diffstat (limited to 'xlators/features/quota/src')
| -rw-r--r-- | xlators/features/quota/src/quota-mem-types.h | 3 | ||||
| -rw-r--r-- | xlators/features/quota/src/quota.c | 19 | ||||
| -rw-r--r-- | xlators/features/quota/src/quota.h | 8 | 
3 files changed, 15 insertions, 15 deletions
diff --git a/xlators/features/quota/src/quota-mem-types.h b/xlators/features/quota/src/quota-mem-types.h index da28be5b380..ed70c29285e 100644 --- a/xlators/features/quota/src/quota-mem-types.h +++ b/xlators/features/quota/src/quota-mem-types.h @@ -23,8 +23,7 @@  #include "mem-types.h"  enum gf_quota_mem_types_ { -        gf_quota_mt_quota_local_t = gf_common_mt_end + 1, -        gf_quota_mt_quota_priv_t, +        gf_quota_mt_quota_priv_t = gf_common_mt_end + 1,          gf_quota_mt_quota_inode_ctx_t,          gf_quota_mt_loc_t,          gf_quota_mt_char, diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c index 3710e8f90cf..6b7db70cfa4 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -141,14 +141,13 @@ out:  } -quota_local_t * +static inline quota_local_t *  quota_local_new ()  { -        quota_local_t     *local  = NULL; -        GF_UNUSED int32_t  ret    = 0; - -        QUOTA_LOCAL_ALLOC_OR_GOTO (local, quota_local_t, err); -err: +        quota_local_t *local = NULL; +        local = mem_get0 (THIS->local_pool); +        if (local) +                LOCK_INIT (&local->lock);          return local;  } @@ -3001,6 +3000,14 @@ init (xlator_t *this)          GF_OPTION_INIT ("timeout", priv->timeout, int64, err); +        this->local_pool = mem_pool_new (quota_local_t, 1024); +        if (!this->local_pool) { +                ret = -1; +                gf_log (this->name, GF_LOG_ERROR, +                        "failed to create local_t's memory pool"); +                goto err; +        } +          ret = 0;  err:          return ret; diff --git a/xlators/features/quota/src/quota.h b/xlators/features/quota/src/quota.h index 9b94d592077..79b4d07e351 100644 --- a/xlators/features/quota/src/quota.h +++ b/xlators/features/quota/src/quota.h @@ -60,12 +60,6 @@                  UNLOCK (lock);                  \          } while (0) -#define QUOTA_LOCAL_ALLOC_OR_GOTO(local, type, label)           \ -        do {                                                    \ -                QUOTA_ALLOC_OR_GOTO (local, type, label);       \ -                LOCK_INIT (&local->lock);                       \ -        } while (0) -  #define QUOTA_ALLOC_OR_GOTO(var, type, label)           \          do {                                            \                  var = GF_CALLOC (sizeof (type), 1,      \ @@ -89,7 +83,7 @@                  }                                                       \                  STACK_UNWIND_STRICT (fop, frame, params);               \                  quota_local_cleanup (_this, _local);                    \ -                GF_FREE (_local);                                       \ +                mem_put (_local);                                       \          } while (0)  #define QUOTA_FREE_CONTRIBUTION_NODE(_contribution)     \  | 
