return mail_get_physical_size(mail, size_r);
}
+static void quota_alloc_with_size(struct quota_transaction_context *ctx,
+ uoff_t size)
+{
+ ctx->bytes_used += size;
+ ctx->bytes_ceil = ctx->bytes_ceil2;
+ ctx->count_used++;
+}
+
enum quota_alloc_result quota_try_alloc(struct quota_transaction_context *ctx,
struct mail *mail, const char **error_r)
{
quota_alloc() or quota_free_bytes() was already used within the same
transaction, but that doesn't normally happen. */
ctx->auto_updating = FALSE;
- quota_alloc(ctx, mail);
+ quota_alloc_with_size(ctx, size);
return QUOTA_ALLOC_RESULT_OK;
}
void quota_alloc(struct quota_transaction_context *ctx, struct mail *mail)
{
- uoff_t size;
+ uoff_t size = 0;
if (!ctx->auto_updating) {
- if (quota_get_mail_size(ctx, mail, &size) == 0)
- ctx->bytes_used += size;
+ (void)quota_get_mail_size(ctx, mail, &size);
}
- ctx->bytes_ceil = ctx->bytes_ceil2;
- ctx->count_used++;
+ quota_alloc_with_size(ctx, size);
}
void quota_free_bytes(struct quota_transaction_context *ctx,