]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: Replace mailbox_set_reason() with reason_code=quota:recalculate and quota...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 9 Mar 2021 14:49:12 +0000 (16:49 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 29 Sep 2021 10:09:58 +0000 (10:09 +0000)
src/plugins/quota/quota-count.c
src/plugins/quota/quota-dict.c
src/plugins/quota/quota-maildir.c

index cb869fc639199f2559d8020326f949698b85d23f..00e25e6b6cd77cbb6fe57146d00b44d4e86fe177 100644 (file)
@@ -44,7 +44,6 @@ quota_count_mailbox(struct quota_root *root, struct mail_namespace *ns,
        }
 
        box = mailbox_alloc(ns->list, vname, MAILBOX_FLAG_READONLY);
-       mailbox_set_reason(box, "quota count");
        if ((box->storage->class_flags & MAIL_STORAGE_CLASS_FLAG_NOQUOTA) != 0) {
                /* quota doesn't exist for this mailbox/storage */
                ret = 0;
@@ -178,6 +177,8 @@ int quota_count(struct quota_root *root, uint64_t *bytes_r, uint64_t *count_r,
                return 0;
        root->recounting = TRUE;
 
+       struct event_reason *reason = event_reason_begin("quota:count");
+
        iter = quota_mailbox_iter_begin(root);
        while ((info = quota_mailbox_iter_next(iter)) != NULL) {
                if (quota_count_mailbox(root, info->ns, info->vname,
@@ -196,6 +197,7 @@ int quota_count(struct quota_root *root, uint64_t *bytes_r, uint64_t *count_r,
                        *error1 != '\0' && *error2 != '\0' ? " and " : "";
                *error_r = t_strconcat(error1, separator, error2, NULL);
        }
+       event_reason_end(&reason);
        root->recounting = FALSE;
        return ret;
 }
@@ -340,16 +342,18 @@ static int quota_count_recalculate_box(struct mailbox *box,
 static int quota_count_recalculate(struct quota_root *root,
                                   const char **error_r)
 {
+       struct event_reason *reason;
        struct quota_mailbox_iter *iter;
        const struct mailbox_info *info;
        struct mailbox *box;
        int ret = 0;
        const char *error1 = "", *error2 = "";
 
+       reason = event_reason_begin("quota:recalculate");
+
        iter = quota_mailbox_iter_begin(root);
        while ((info = quota_mailbox_iter_next(iter)) != NULL) {
                box = mailbox_alloc(info->ns->list, info->vname, 0);
-               mailbox_set_reason(box, "quota recalculate");
                if (quota_count_recalculate_box(box, &error1) < 0)
                        ret = -1;
                mailbox_free(&box);
@@ -363,6 +367,7 @@ static int quota_count_recalculate(struct quota_root *root,
                        "quota-count: recalculate failed: %s%s%s",
                        error1, separator, error2);
        }
+       event_reason_end(&reason);
        return ret;
 }
 
index a22c774a2a35d1adfe53f8cd0745278ea71a967b..02e444a3457af14a85cd15ccee90790288d00af0 100644 (file)
@@ -109,11 +109,15 @@ dict_quota_count(struct dict_quota_root *root,
                 const char **error_r)
 {
        struct dict_transaction_context *dt;
+       struct event_reason *reason;
        uint64_t bytes, count;
        enum quota_get_result error_res;
        const struct dict_op_settings *set;
 
-       if (quota_count(&root->root, &bytes, &count, &error_res, error_r) < 0)
+       reason = event_reason_begin("quota:recalculate");
+       int ret = quota_count(&root->root, &bytes, &count, &error_res, error_r);
+       event_reason_end(&reason);
+       if (ret < 0)
                return error_res;
 
        set = mail_user_get_dict_op_settings(root->root.quota->user);
index ab12beebd75aee045c220956ef7a311ffbc299ac..f4fd3a797939d2008e585c6ff2d47ab24500f785 100644 (file)
@@ -385,9 +385,11 @@ static int maildirsize_recalculate(struct maildir_quota_root *root,
                                   const char **error_r)
 {
        struct mail_namespace *const *namespaces;
+       struct event_reason *reason;
        unsigned int i, count;
        int ret = 0;
 
+       reason = event_reason_begin("quota:recalculate");
        maildirsize_recalculate_init(root);
 
        /* count mails from all namespaces */
@@ -417,7 +419,9 @@ static int maildirsize_recalculate(struct maildir_quota_root *root,
                }
        }
 
-       return maildirsize_recalculate_finish(root, ret, error_r);
+       ret = maildirsize_recalculate_finish(root, ret, error_r);
+       event_reason_end(&reason);
+       return ret;
 }
 
 static bool