diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/features/quota/src/quota.c | 18 | 
1 files changed, 12 insertions, 6 deletions
diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c index a531ab1231a..c42b23027e3 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -3935,7 +3935,7 @@ wind:  /* Logs if  *  i.   Usage crossed soft limit -*  ii.  Usage above soft limit and alert-time timed out +*  ii.  Usage above soft limit and alert-time elapsed  */  void  quota_log_usage (xlator_t *this, quota_inode_ctx_t *ctx, inode_t *inode, @@ -3943,39 +3943,45 @@ quota_log_usage (xlator_t *this, quota_inode_ctx_t *ctx, inode_t *inode,  {          struct timeval           cur_time       = {0,};          char                    *usage_str      = NULL; +        char                    size_str[32]    = {0};          char                    *path           = NULL;          int64_t                  cur_size       = 0;          quota_priv_t            *priv           = NULL;          priv = this->private; -        cur_size = ctx->size + delta;          if ((ctx->soft_lim <= 0) || (timerisset (&ctx->prev_log) &&                                       !quota_timeout (&ctx->prev_log,                                                       priv->log_timeout))) {                  return;          } -        gettimeofday (&cur_time, NULL); -        ctx->prev_log = cur_time; +        cur_size = ctx->size + delta;          usage_str = gf_uint64_2human_readable (cur_size); +        if (!usage_str) { +                snprintf (size_str, sizeof (size_str), "%"PRId64, cur_size); +                usage_str = (char*) size_str; +        }          inode_path (inode, NULL, &path);          if (!path)                  path = uuid_utoa (inode->gfid); +        gettimeofday (&cur_time, NULL);          /* Usage crossed/reached soft limit */          if (DID_REACH_LIMIT (ctx->soft_lim, ctx->size, cur_size)) {                  gf_log (this->name, GF_LOG_ALERT, "Usage crossed "                          "soft limit: %s used by %s", usage_str, path); +                ctx->prev_log = cur_time;          }          /* Usage is above soft limit */          else if (cur_size > ctx->soft_lim){                  gf_log (this->name, GF_LOG_ALERT, "Usage is above "                          "soft limit: %s used by %s", usage_str, path); +                ctx->prev_log = cur_time;          } -        if (usage_str) -                GF_FREE (usage_str); + +        GF_FREE (usage_str);  }  int32_t  | 
