]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Add reason to mailbox_transaction_begin()
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Wed, 20 Sep 2017 11:42:00 +0000 (14:42 +0300)
committerMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Fri, 22 Sep 2017 11:07:24 +0000 (14:07 +0300)
Remove mailbox_transaction_set_reason().

52 files changed:
src/doveadm/doveadm-mail-copymove.c
src/doveadm/doveadm-mail-deduplicate.c
src/doveadm/doveadm-mail-import.c
src/doveadm/doveadm-mail-index.c
src/doveadm/doveadm-mail-iter.c
src/doveadm/doveadm-mail-mailbox-metadata.c
src/doveadm/doveadm-mail-save.c
src/doveadm/dsync/dsync-mailbox-export.c
src/doveadm/dsync/dsync-mailbox-import.c
src/imap/cmd-append.c
src/imap/cmd-copy.c
src/imap/cmd-store.c
src/imap/cmd-thread.c
src/imap/imap-commands-util.c
src/imap/imap-expunge.c
src/imap/imap-fetch.c
src/imap/imap-search.c
src/imap/imap-state.c
src/imap/imap-sync.c
src/indexer/master-connection.c
src/lda/main.c
src/lib-imap-storage/imap-metadata.c
src/lib-imap-storage/imap-msgpart-url.c
src/lib-imap-urlauth/imap-urlauth-backend.c
src/lib-lda/mail-deliver.c
src/lib-storage/index/index-mailbox-size.c
src/lib-storage/index/index-search-result.c
src/lib-storage/index/index-status.c
src/lib-storage/index/index-storage.c
src/lib-storage/index/index-thread.c
src/lib-storage/list/mailbox-list-index-status.c
src/lib-storage/mail-autoexpunge.c
src/lib-storage/mail-storage.c
src/lib-storage/mail-storage.h
src/lmtp/commands.c
src/plugins/acl/doveadm-acl.c
src/plugins/expire/expire-plugin.c
src/plugins/fts-squat/fts-backend-squat.c
src/plugins/imap-acl/imap-acl-plugin.c
src/plugins/lazy-expunge/lazy-expunge-plugin.c
src/plugins/mail-crypt/doveadm-mail-crypt.c
src/plugins/mail-crypt/mail-crypt-acl-plugin.c
src/plugins/mail-crypt/mail-crypt-key.c
src/plugins/mail-crypt/test-mail-key.c
src/plugins/pop3-migration/pop3-migration-plugin.c
src/plugins/quota/quota-storage.c
src/plugins/snarf/snarf-plugin.c
src/plugins/trash/trash-plugin.c
src/plugins/virtual/virtual-sync.c
src/plugins/virtual/virtual-transaction.c
src/pop3/pop3-client.c
src/pop3/pop3-commands.c

index 8e5b700912c7a26e8966e4455079c01fe839875f..6448f2794add42687a778ba4107d097a56f9f17b 100644 (file)
@@ -39,7 +39,8 @@ cmd_copy_box(struct copy_cmd_context *ctx, struct mailbox *destbox,
           this guarantees that mails aren't expunged without actually having
           been copied. */
        desttrans = mailbox_transaction_begin(destbox,
-                                       MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+                                       MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                       __func__);
 
        while (doveadm_mail_iter_next(iter, &mail)) {
                save_ctx = mailbox_save_alloc(desttrans);
index cf96cb6fbd5215031c7d3113a31be9db5bae1dd7..13a43a8a2f4f21f8f7c0e096c9879ad3fcab341b 100644 (file)
@@ -42,7 +42,7 @@ static int cmd_deduplicate_uidlist(struct doveadm_mail_cmd_context *_ctx,
        arg = mail_search_build_add(search_args, SEARCH_UIDSET);
        arg->value.seqset = uids;
 
-       trans = mailbox_transaction_begin(box, 0);
+       trans = mailbox_transaction_begin(box, 0, __func__);
        search_ctx = mailbox_search_init(trans, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
index 494723a34ea20180170dcf15072a738c9890f932..a9005ea195854e32aaa0dcc267d8754a7d06d85b 100644 (file)
@@ -100,7 +100,8 @@ cmd_import_box_contents(struct doveadm_mail_iter *iter, struct mail *src_mail,
        int ret = 0;
 
        dest_trans = mailbox_transaction_begin(dest_box,
-                               MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+                                       MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                       __func__);
        do {
                if (doveadm_debug) {
                        i_debug("import: box=%s uid=%u",
index f232d5e1ea834a5a65568943ee22f1bd311dfb39..b6d9533bfa10d323ee6a44db1c29b5e5a960772f 100644 (file)
@@ -65,7 +65,8 @@ static int cmd_index_box_precache(struct mailbox *box)
                       mailbox_get_vname(box), seq, status.messages);
        }
 
-       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC);
+       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC,
+                                         __func__);
        search_args = mail_search_build_init();
        mail_search_build_add_seqset(search_args, seq, status.messages);
        ctx = mailbox_search_init(trans, search_args, NULL,
index a348c285c01e5fc15657618094d4d9bd2b010d47..78242056b2262be69b6ff8782a844485402d30cd 100644 (file)
@@ -58,7 +58,7 @@ int doveadm_mail_iter_init(struct doveadm_mail_cmd_context *ctx,
                NULL : mailbox_header_lookup_init(iter->box, wanted_headers);
 
        mail_search_args_init(search_args, iter->box, FALSE, NULL);
-       iter->t = mailbox_transaction_begin(iter->box, 0);
+       iter->t = mailbox_transaction_begin(iter->box, 0, __func__);
        iter->search_ctx = mailbox_search_init(iter->t, search_args, NULL,
                                               wanted_fields, headers_ctx);
        *iter_r = iter;
index 21db77e1dc9ced5e0133785ab5eb90dc80d5b00e..a365c5fbb63ae2b986550c3c69136bada7b0b2af 100644 (file)
@@ -75,7 +75,8 @@ cmd_mailbox_metadata_set_run(struct doveadm_mail_cmd_context *_ctx,
                return ret;
 
        trans = mailbox_transaction_begin(box, ctx->empty_mailbox_name ?
-                                         MAILBOX_TRANSACTION_FLAG_EXTERNAL : 0);
+                                         MAILBOX_TRANSACTION_FLAG_EXTERNAL : 0,
+                                         __func__);
 
        ret = ctx->value.value == NULL ?
                mailbox_attribute_unset(trans, ctx->key_type, ctx->key) :
index 3481f619a26c86a0c2bd9236201da9d2d8b55bf3..2c75004156e0bf1fa0ad27b54a823b50657d3097 100644 (file)
@@ -36,7 +36,8 @@ cmd_save_to_mailbox(struct save_cmd_context *ctx, struct mailbox *box,
                return -1;
        }
 
-       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                         __func__);
        save_ctx = mailbox_save_alloc(trans);
        if (mailbox_save_begin(&save_ctx, input) < 0) {
                i_error("Saving failed: %s",
index cb02deba3d494779f7412c3a00934277eadf0e95..9eed9dcd37bbb9fa772ddab82b4e57a527732b37 100644 (file)
@@ -400,7 +400,8 @@ dsync_mailbox_export_search(struct dsync_mailbox_exporter *exporter)
        }
 
        exporter->trans = mailbox_transaction_begin(exporter->box,
-                                               MAILBOX_TRANSACTION_FLAG_SYNC);
+                                               MAILBOX_TRANSACTION_FLAG_SYNC,
+                                               __func__);
        search_ctx = mailbox_search_init(exporter->trans, search_args, NULL,
                                         wanted_fields, wanted_headers);
        mail_search_args_unref(&search_args);
index b4272927e03e5d8255d8423b494f6d4432709dec..1cfdda18c7334613b862a6aee2a6c3e2c8c9018f 100644 (file)
@@ -203,9 +203,11 @@ dsync_mailbox_import_transaction_begin(struct dsync_mailbox_importer *importer)
                MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS;
 
        importer->trans = mailbox_transaction_begin(importer->box,
-                                                   importer->transaction_flags);
+                                                   importer->transaction_flags,
+                                                   "dsync import");
        importer->ext_trans = mailbox_transaction_begin(importer->box,
-                                                       ext_trans_flags);
+                                                       ext_trans_flags,
+                                                       "dsync ext import");
        importer->mail = mail_alloc(importer->trans, 0, NULL);
        importer->ext_mail = mail_alloc(importer->ext_trans, 0, NULL);
 }
@@ -2188,7 +2190,8 @@ dsync_mailbox_import_find_virtual_uids(struct dsync_mailbox_importer *importer)
 
        importer->virtual_trans =
                mailbox_transaction_begin(importer->virtual_all_box,
-                                         importer->transaction_flags);
+                                         importer->transaction_flags,
+                                         __func__);
        search_ctx = mailbox_search_init(importer->virtual_trans, search_args,
                                         NULL, MAIL_FETCH_GUID, NULL);
        mail_search_args_unref(&search_args);
@@ -2612,7 +2615,7 @@ reassign_uids_in_seq_range(struct dsync_mailbox_importer *importer,
                     array_count(unwanted_uids));
        array_append_array(&arg->value.seqset, unwanted_uids);
 
-       trans = mailbox_transaction_begin(box, trans_flags);
+       trans = mailbox_transaction_begin(box, trans_flags, __func__);
        search_ctx = mailbox_search_init(trans, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
index f55d43bdd7c087b8c00c5b2299d140512018b5c8..93777285b60341fbb0f7c52f7d3991c4f96d0ada 100644 (file)
@@ -926,8 +926,8 @@ bool cmd_append(struct client_command_context *cmd)
        else {
                ctx->t = mailbox_transaction_begin(ctx->box,
                                        MAILBOX_TRANSACTION_FLAG_EXTERNAL |
-                                       MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS);
-               imap_transaction_set_cmd_reason(ctx->t, cmd);
+                                       MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS,
+                                       imap_client_command_get_reason(cmd));
        }
 
        io_remove(&client->io);
index b4b71b1a492b5f4cc580c4a901f170f065201012..708bf764480b4b7344bb559ab1b4020c6b455442 100644 (file)
@@ -48,8 +48,8 @@ static int fetch_and_copy(struct client_command_context *cmd, bool move,
        src_uidset = t_str_new(256);
        msgset_generator_init(&srcset_ctx, src_uidset);
 
-       src_trans = mailbox_transaction_begin(client->mailbox, 0);
-       imap_transaction_set_cmd_reason(src_trans, cmd);
+       src_trans = mailbox_transaction_begin(client->mailbox, 0,
+                                             imap_client_command_get_reason(cmd));
        search_ctx = mailbox_search_init(src_trans, search_args, NULL, 0, NULL);
 
        ret = 1;
@@ -134,8 +134,8 @@ static bool cmd_copy_full(struct client_command_context *cmd, bool move)
 
        t = mailbox_transaction_begin(destbox,
                                      MAILBOX_TRANSACTION_FLAG_EXTERNAL |
-                                     MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS);
-       imap_transaction_set_cmd_reason(t, cmd);
+                                     MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS,
+                                     imap_client_command_get_reason(cmd));
        ret = fetch_and_copy(cmd, move, t, &src_trans, search_args,
                             &src_uidset, &copy_count);
        mail_search_args_unref(&search_args);
index 41c08cc785f57bba56faa390d052bbeecf4990e0..80e1739821365d760c8dd3ac2f0fafb8ae075bd9 100644 (file)
@@ -177,8 +177,9 @@ bool cmd_store(struct client_command_context *cmd)
                flags |= MAILBOX_TRANSACTION_FLAG_REFRESH;
        }
 
-       t = mailbox_transaction_begin(client->mailbox, flags);
-       imap_transaction_set_cmd_reason(t, cmd);
+       t = mailbox_transaction_begin(client->mailbox, flags,
+                                     imap_client_command_get_reason(cmd));
+
        search_ctx = mailbox_search_init(t, search_args, NULL,
                                         MAIL_FETCH_FLAGS, NULL);
        mail_search_args_unref(&search_args);
index 6a07ba59636722c73b5d19e13d8d5dc3d8f87961..e734d1b3e7f5527c72899d743cb294974398225e 100644 (file)
@@ -186,8 +186,8 @@ static int imap_thread_orderedsubject(struct client_command_context *cmd,
        /* first read all of the threads into memory */
        pool = pool_alloconly_create("orderedsubject thread", 1024);
        i_array_init(&threads, 128);
-       trans = mailbox_transaction_begin(cmd->client->mailbox, 0);
-       imap_transaction_set_cmd_reason(trans, cmd);
+       trans = mailbox_transaction_begin(cmd->client->mailbox, 0,
+                                         imap_client_command_get_reason(cmd));
        search_ctx = mailbox_search_init(trans, search_args, sort_program,
                                         0, NULL);
        while (mailbox_search_next(search_ctx, &mail)) {
index c9eaf988e0129cda5bd9fac607afdd3d9a6f14d3..e4d07b0e924ae7d9015f85cc6a31d33db5861b8d 100644 (file)
@@ -138,12 +138,6 @@ const char *imap_client_command_get_reason(struct client_command_context *cmd)
                t_strdup_printf("%s %s", cmd->name, cmd->human_args);
 }
 
-void imap_transaction_set_cmd_reason(struct mailbox_transaction_context *trans,
-                                    struct client_command_context *cmd)
-{
-       mailbox_transaction_set_reason(trans, imap_client_command_get_reason(cmd));
-}
-
 const char *
 imap_get_error_string(struct client_command_context *cmd,
                      const char *error_string, enum mail_error error)
index 40d6c96665d5185ed30948243afce3766ab25204..6003465de9428a48d9bf038697c34e5ebb964015 100644 (file)
@@ -27,8 +27,8 @@ int imap_expunge(struct mailbox *box, struct mail_search_arg *next_search_arg,
 
        /* Refresh the flags so we'll expunge all messages marked as \Deleted
           by any session. */
-       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_REFRESH);
-       mailbox_transaction_set_reason(t, "EXPUNGE");
+       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_REFRESH,
+                                     "EXPUNGE");
        ctx = mailbox_search_init(t, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
index 8bd2dac7cc928cf29b8184088a72b4d5bda2aeae..df870cd1ff72924ac248818125fef148776a8911 100644 (file)
@@ -246,8 +246,7 @@ get_expunges_fallback(struct mailbox *box,
        i_array_init(&search_args->args->value.seqset, count);
        array_append_array(&search_args->args->value.seqset, uid_filter_arr);
 
-       trans = mailbox_transaction_begin(box, 0);
-       mailbox_transaction_set_reason(trans, "FETCH send VANISHED");
+       trans = mailbox_transaction_begin(box, 0, "FETCH send VANISHED");
        search_ctx = mailbox_search_init(trans, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
@@ -398,8 +397,8 @@ void imap_fetch_begin(struct imap_fetch_context *ctx, struct mailbox *box,
                   are added, other flag changes are also hidden.) */
                trans_flags |= MAILBOX_TRANSACTION_FLAG_HIDE;
        }
-       ctx->state.trans = mailbox_transaction_begin(box, trans_flags);
-       mailbox_transaction_set_reason(ctx->state.trans, ctx->reason);
+       ctx->state.trans = mailbox_transaction_begin(box, trans_flags,
+                                                    ctx->reason);
 
        mail_search_args_init(search_args, box, TRUE,
                              &ctx->client->search_saved_uidset);
index 0b608b844feb0cd676f553203ec98e703480f8f6..7885b13777e7611f51a08eec89a7d60d60dd1000 100644 (file)
@@ -580,8 +580,8 @@ bool imap_search_start(struct imap_search_context *ctx,
        }
 
        ctx->box = cmd->client->mailbox;
-       ctx->trans = mailbox_transaction_begin(ctx->box, 0);
-       imap_transaction_set_cmd_reason(ctx->trans, cmd);
+       ctx->trans = mailbox_transaction_begin(ctx->box, 0,
+                                              imap_client_command_get_reason(cmd));
        ctx->sargs = sargs;
        ctx->search_ctx =
                mailbox_search_init(ctx->trans, sargs, sort_program, 0, NULL);
index 50ee3b54391bea5202a0a8d2b7b25802e1b4e5f1..db687a8c7ec05afb364f63c1dfb4de6b45bc5f09 100644 (file)
@@ -173,8 +173,8 @@ imap_state_export_mailbox_mails(buffer_t *dest, struct mailbox *box,
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
 
-       trans = mailbox_transaction_begin(box, 0);
-       mailbox_transaction_set_reason(trans, "unhibernate");
+       trans = mailbox_transaction_begin(box, 0,
+                               "unhibernate imap_state_export_mailbox_mails");
        search_ctx = mailbox_search_init(trans, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
@@ -371,8 +371,8 @@ import_send_expunges(struct client *client,
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
 
-       trans = mailbox_transaction_begin(client->mailbox, 0);
-       mailbox_transaction_set_reason(trans, "unhibernate");
+       trans = mailbox_transaction_begin(client->mailbox, 0,
+                                         "unhibernate import_send_expunges");
        search_ctx = mailbox_search_init(trans, search_args, NULL, 0, NULL);
        mail_search_args_unref(&search_args);
 
index fda6266f9b696bc519a02b456839503c52a0870e..d345ddf44b2916916c4555f4734ca6134b67a0ee 100644 (file)
@@ -190,8 +190,7 @@ imap_sync_init(struct client *client, struct mailbox *box,
        mail_user_drop_useless_namespaces(client->user);
 
        ctx->sync_ctx = mailbox_sync_init(box, flags);
-       ctx->t = mailbox_transaction_begin(box, 0);
-       mailbox_transaction_set_reason(ctx->t, "Mailbox sync");
+       ctx->t = mailbox_transaction_begin(box, 0, "Mailbox sync");
        ctx->mail = mail_alloc(ctx->t, MAIL_FETCH_FLAGS, NULL);
        ctx->messages_count = client->messages_count;
        i_array_init(&ctx->tmp_keywords, client->keywords.announce_count + 8);
index bee47448db62e802d9671284ba7995177bafedec..4387964b3c89556b728148133838344a11ced6fd 100644 (file)
@@ -83,8 +83,8 @@ index_mailbox_precache(struct master_connection *conn, struct mailbox *box)
        }
        seq = status.last_cached_seq + 1;
 
-       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC);
-       mailbox_transaction_set_reason(trans, "indexing");
+       trans = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC,
+                                         "indexing");
        search_args = mail_search_build_init();
        mail_search_build_add_seqset(search_args, seq, status.messages);
        ctx = mailbox_search_init(trans, search_args, NULL,
index 7bbe3c9ed696e491f18a2712ab2f4457c362e669..6b0b3232e9cf9b4a70e5ca7f8c21c7692242ee02 100644 (file)
@@ -200,7 +200,7 @@ lda_raw_mail_open(struct mail_deliver_context *ctx, const char *path)
        }
        mail_user_unref(&raw_mail_user);
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        headers_ctx = mailbox_header_lookup_init(box, wanted_headers);
        mail = mail_alloc(t, 0, headers_ctx);
        mailbox_header_lookup_unref(&headers_ctx);
index eac482f061f9104e5976dbd08ee8040862dcf128..cd2faa9bbb10c14344ab315df4337b2079528845 100644 (file)
@@ -121,7 +121,8 @@ imap_metadata_get_mailbox_transaction(struct imap_metadata_transaction *imtrans)
 
        if (imtrans->box == NULL || mailbox_open(imtrans->box) < 0)
                return -1;
-       imtrans->trans = mailbox_transaction_begin(imtrans->box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+       imtrans->trans = mailbox_transaction_begin(imtrans->box,
+                       MAILBOX_TRANSACTION_FLAG_EXTERNAL, __func__);
        return 0;
 }
 
index a8dd6155fe66d1b6ad9914039e5c07536d74beb2..9b7fcd4afff285e17522a323d4df16ed636e8d64 100644 (file)
@@ -176,7 +176,7 @@ int imap_msgpart_url_open_mail(struct imap_msgpart_url *mpurl,
                return ret;
 
        /* start transaction */
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        mail = mail_alloc(t, MAIL_FETCH_MESSAGE_PARTS |
                          MAIL_FETCH_IMAP_BODYSTRUCTURE, NULL);
 
index 9eda3355bb8327e7e2e0180072f4f3c81127bca5..bd2d0ede967ddda5e8487e160951346f6896b797 100644 (file)
@@ -28,7 +28,9 @@ imap_urlauth_backend_trans_set_mailbox_key(struct mailbox *box,
        }
 
        struct mailbox_transaction_context *t =
-               mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+               mailbox_transaction_begin(box,
+                               MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                               __func__);
 
        /* create new key */
        random_fill(mailbox_key_r, IMAP_URLAUTH_KEY_LEN);
@@ -120,7 +122,8 @@ int imap_urlauth_backend_reset_mailbox_key(struct mailbox *box)
        struct mailbox_transaction_context *t;
        int ret;
 
-       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                     __func__);
        ret = mailbox_attribute_unset(t, MAIL_ATTRIBUTE_TYPE_PRIVATE,
                                      IMAP_URLAUTH_KEY);
        if (mailbox_transaction_commit(&t) < 0)
index 820bd58d0d7b9e708cf82b4b0462d8985bd4f7a5..9eb23e0d1917a5e2e1203a68dbf9259d8bdc362a 100644 (file)
@@ -324,7 +324,7 @@ mail_deliver_open_mail(struct mailbox *box, uint32_t uid,
        if (mailbox_sync(box, MAILBOX_SYNC_FLAG_FAST) < 0)
                return NULL;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        mail = mail_alloc(t, wanted_fields, NULL);
 
        if (!mail_set_uid(mail, uid)) {
@@ -380,7 +380,7 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
        trans_flags = MAILBOX_TRANSACTION_FLAG_EXTERNAL;
        if (ctx->save_dest_mail)
                trans_flags |= MAILBOX_TRANSACTION_FLAG_ASSIGN_UIDS;
-       t = mailbox_transaction_begin(box, trans_flags);
+       t = mailbox_transaction_begin(box, trans_flags, __func__);
 
        kw = str_array_length(keywords) == 0 ? NULL :
                mailbox_keywords_create_valid(box, keywords);
index 8bf00e7390b1e6b6cd61328e78418c8dc5ce3906..37f03da6d324f392829c9041213830524bc381a3 100644 (file)
@@ -294,8 +294,7 @@ index_mailbox_vsize_hdr_add_missing(struct mailbox_vsize_update *update,
        }
        mail_search_build_add_seqset(search_args, seq1, seq2);
 
-       trans = mailbox_transaction_begin(update->box, 0);
-       mailbox_transaction_set_reason(trans, "vsize update");
+       trans = mailbox_transaction_begin(update->box, 0, "vsize update");
        search_ctx = mailbox_search_init(trans, search_args, NULL,
                                         MAIL_FETCH_VIRTUAL_SIZE, NULL);
        if (!require_result)
@@ -407,8 +406,7 @@ int index_mailbox_get_physical_size(struct mailbox *box,
        if (mailbox_sync(box, MAILBOX_SYNC_FLAG_FULL_READ) < 0)
                return -1;
 
-       trans = mailbox_transaction_begin(box, 0);
-       mailbox_transaction_set_reason(trans, "mailbox physical size");
+       trans = mailbox_transaction_begin(box, 0, "mailbox physical size");
 
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
index 8b2ab1123cd019d57f3d33840494605bd6f2ad31..a54cd1956d4450a56b750d302e4c8d8761c0bc89 100644 (file)
@@ -68,7 +68,7 @@ search_result_update_search(struct mail_search_result *result,
 
        mail_search_args_init(result->search_args, result->box, FALSE, NULL);
 
-       t = mailbox_transaction_begin(result->box, 0);
+       t = mailbox_transaction_begin(result->box, 0, __func__);
        search_ctx = mailbox_search_init(t, result->search_args, NULL, 0, NULL);
        /* tell search that we're updating an existing search result,
           so it can do some optimizations based on it */
@@ -161,7 +161,7 @@ int index_search_result_update_appends(struct mail_search_result *result,
        result->search_args->args = &search_arg;
 
        /* add all messages matching the search to search result */
-       t = mailbox_transaction_begin(result->box, 0);
+       t = mailbox_transaction_begin(result->box, 0, __func__);
        search_ctx = mailbox_search_init(t, result->search_args, NULL, 0, NULL);
 
        while (mailbox_search_next(search_ctx, &mail))
index 70dd2ab596279521c32b85cd660aa41ed429f076..97722bd8a6117e00d133821f34b4ed50338799b9 100644 (file)
@@ -282,7 +282,7 @@ index_mailbox_get_first_save_date(struct mailbox *box,
                return 0;
        }
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        mail = mail_alloc(t, 0, NULL);
        for (seq = 1; seq <= hdr->messages_count; seq++) {
                mail_set_seq(mail, seq);
index 541ad026114bb19566feccb6976245a07ddb9c59..95cd3bcc24fe0e2615963e5da7a4a63070197cf5 100644 (file)
@@ -703,7 +703,7 @@ static int mailbox_expunge_all_data(struct mailbox *box)
 
        (void)mailbox_sync(box, MAILBOX_SYNC_FLAG_FULL_READ);
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
 
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
index da4a1dc8267742ba4bea96f0ffe6fd1d7100b847..26733779e2ec863a27211cd0a5b41796365d477a 100644 (file)
@@ -558,7 +558,7 @@ int mail_thread_init(struct mailbox *box, struct mail_search_args *args,
        ctx = i_new(struct mail_thread_context, 1);
        ctx->box = box;
        ctx->search_args = args;
-       ctx->t = mailbox_transaction_begin(ctx->box, 0);
+       ctx->t = mailbox_transaction_begin(ctx->box, 0, __func__);
        /* perform search first, so we don't break if there are INTHREAD keys */
        search_ctx = mailbox_search_init(ctx->t, args, NULL, 0, NULL);
 
index f5045a8755b516ae420279e1e1b959cf546bb0a8..1282c57f1146a6fb67a524e9b871181afa9e8e3d 100644 (file)
@@ -541,7 +541,7 @@ index_list_update_first_saved(struct mailbox *box,
        first_saved.timestamp = (uint32_t)-1;
 
        if (changes->first_uid != 0) {
-               t = mailbox_transaction_begin(box, 0);
+               t = mailbox_transaction_begin(box, 0, __func__);
                mail = mail_alloc(t, MAIL_FETCH_SAVE_DATE, NULL);
                messages_count = mail_index_view_get_messages_count(box->view);
                for (seq = 1; seq <= messages_count; seq++) {
index 13fbda0f9ef1d889210537845e86a67b8af408fa..ba5de3691f38f1d501e2369301bcbb26267402de 100644 (file)
@@ -93,8 +93,7 @@ mailbox_autoexpunge(struct mailbox *box, unsigned int interval_time,
        if (size >= sizeof(uint32_t))
                last_rename_stamp = *(const uint32_t*)data;
 
-       t = mailbox_transaction_begin(box, 0);
-       mailbox_transaction_set_reason(t, "autoexpunge");
+       t = mailbox_transaction_begin(box, 0, "autoexpunge");
        mail = mail_alloc(t, 0, NULL);
 
        hdr = mail_index_get_header(box->view);
index 211890c1177283575fb2da9905a1f7bd84a92492..d05ff22d5a3a674ec167562840d87e61deb71258 100644 (file)
@@ -2060,7 +2060,8 @@ int mailbox_search_result_build(struct mailbox_transaction_context *t,
 
 struct mailbox_transaction_context *
 mailbox_transaction_begin(struct mailbox *box,
-                         enum mailbox_transaction_flags flags)
+                         enum mailbox_transaction_flags flags,
+                         const char *reason)
 {
        struct mailbox_transaction_context *trans;
 
@@ -2068,9 +2069,11 @@ mailbox_transaction_begin(struct mailbox *box,
                 (box->flags & MAILBOX_FLAG_USE_STUBS) != 0);
 
        i_assert(box->opened);
+       i_assert(reason != NULL);
 
        box->transaction_count++;
        trans = box->v.transaction_begin(box, flags);
+       trans->reason = i_strdup(reason);
        trans->flags = flags;
        return trans;
 }
@@ -2128,15 +2131,6 @@ void mailbox_transaction_rollback(struct mailbox_transaction_context **_t)
        box->transaction_count--;
 }
 
-void mailbox_transaction_set_reason(struct mailbox_transaction_context *t,
-                                   const char *reason)
-{
-       i_assert(reason != NULL);
-
-       i_free(t->reason);
-       t->reason = i_strdup(reason);
-}
-
 unsigned int mailbox_transaction_get_count(const struct mailbox *box)
 {
        return box->transaction_count;
index aea9a07c70d7c9aabd2f60fc3bdb95292026aed4..17510c37395ba37cebd7ef2cb87830c2fbce5fdc 100644 (file)
@@ -641,16 +641,13 @@ void mailbox_notify_changes_stop(struct mailbox *box);
 
 struct mailbox_transaction_context *
 mailbox_transaction_begin(struct mailbox *box,
-                         enum mailbox_transaction_flags flags);
+                         enum mailbox_transaction_flags flags,
+                         const char *reason);
 int mailbox_transaction_commit(struct mailbox_transaction_context **t);
 int mailbox_transaction_commit_get_changes(
        struct mailbox_transaction_context **t,
        struct mail_transaction_commit_changes *changes_r);
 void mailbox_transaction_rollback(struct mailbox_transaction_context **t);
-/* Set a reason for why the transaction is created. This is used for
-   logging purposes. */
-void mailbox_transaction_set_reason(struct mailbox_transaction_context *t,
-                                   const char *reason);
 /* Return the number of active transactions for the mailbox. */
 unsigned int mailbox_transaction_get_count(const struct mailbox *box) ATTR_PURE;
 /* When committing transaction, drop flag/keyword updates for messages whose
index 27869dc8bee37eb89b1cfa543edcba365b6b5c12..68081a566592da2426cbe84e27c6d7b54bb2deff 100644 (file)
@@ -1048,7 +1048,7 @@ static int client_open_raw_mail(struct client *client, struct istream *input)
                return -1;
        }
 
-       trans = mailbox_transaction_begin(box, 0);
+       trans = mailbox_transaction_begin(box, 0, __func__);
 
        headers_ctx = mailbox_header_lookup_init(box, wanted_headers);
        client->state.raw_mail = mail_alloc(trans, 0, headers_ctx);
index e8a80afab3db59713b2b8f2f5382d758f53b088c..87ffa8ee2db4e29fecd48ebd861928d8c77046e5 100644 (file)
@@ -207,7 +207,8 @@ cmd_acl_mailbox_update(struct mailbox *box,
        struct mailbox_transaction_context *t;
        int ret;
 
-       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                     __func__);
        ret = acl_mailbox_update_acl(t, update);
        if (mailbox_transaction_commit(&t) < 0)
                ret = -1;
index 33edf4c289fbf3c1ea35927994bbad1e167b0fe4..88f235958bbfad90692b5494ad284b736cb4d8b2 100644 (file)
@@ -80,7 +80,7 @@ static void first_save_timestamp(struct mailbox *box, time_t *stamp_r)
 
        *stamp_r = ioloop_time;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        mail = mail_alloc(t, 0, NULL);
 
        /* find the first non-expunged mail. we're here because the first
index 0bf87061b5a6ed54f5c8106f2fc0ce228bc4454c..05c7f77c034779fd34a6c1e3d26e400e0ffe9eda 100644 (file)
@@ -182,7 +182,7 @@ static int get_all_msg_uids(struct mailbox *box, ARRAY_TYPE(seq_range) *uids)
        struct mail *mail;
        int ret;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
 
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
index 52b06cb27378789b4ebf16f96e29a3fb0459fce1..5ff7bc8a1b8315deda6ac9dfe438468dc7bcc9b8 100644 (file)
@@ -545,7 +545,8 @@ cmd_acl_mailbox_update(struct mailbox *box,
                return -1;
        }
 
-       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+       t = mailbox_transaction_begin(box, MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                     __func__);
        ret = acl_mailbox_update_acl(t, update);
        if (mailbox_transaction_commit(&t) < 0)
                ret = -1;
index e0666e49a937f5ba7dee3778fc28a37300d96202..8a15f0c1b0d658f884bce03ad63cd650f4c528b2 100644 (file)
@@ -347,7 +347,8 @@ static void lazy_expunge_mail_expunge(struct mail *_mail)
                }
 
                lt->dest_trans = mailbox_transaction_begin(lt->dest_box,
-                                         MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+                                         MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                         __func__);
        }
 
        save_ctx = mailbox_save_alloc(lt->dest_trans);
index dec8d1abda7b0ed79c7275b88648051b2f484865..99b99e7856d9a87ddcb9028c31597ca7661e0028 100644 (file)
@@ -186,7 +186,7 @@ static int mcp_update_shared_keys(struct mailbox *box, struct mail_user *user,
        string_t *uid = t_str_new(64);
 
        struct mailbox_transaction_context *t =
-               mailbox_transaction_begin(box, 0);
+               mailbox_transaction_begin(box, 0, __func__);
        
        ret = 0;
 
@@ -729,7 +729,7 @@ static int cmd_mcp_key_password_run(struct doveadm_mail_cmd_context *_ctx,
 
        if (ret == 1) {
                struct mailbox_transaction_context *t =
-                       mailbox_transaction_begin(box, 0);
+                       mailbox_transaction_begin(box, 0, __func__);
                struct dcrypt_private_key *key;
                const struct raw_key *raw_key;
                const char *algo = ctx->new_password != NULL ?
index 67920d581413d9194f97bf046f836e50126ed460..3f3b654f4725b252ff3fda7966995f3343ebf417 100644 (file)
@@ -108,7 +108,7 @@ mail_crypt_acl_unset_private_keys(struct mailbox *src_box,
        }
 
        struct mailbox_transaction_context *t;
-       t = mailbox_transaction_begin(src_box, 0);
+       t = mailbox_transaction_begin(src_box, 0, __func__);
 
        const char *const *hash;
        array_foreach(&digests, hash) {
@@ -212,7 +212,7 @@ mail_crypt_acl_update_private_key(struct mailbox *src_box,
        t_array_init(&keys, 8);
 
        struct mailbox_transaction_context *t =
-               mailbox_transaction_begin(src_box, 0);
+               mailbox_transaction_begin(src_box, 0, __func__);
 
        /* get private keys from box */
        if (mail_crypt_box_get_private_keys(src_box, &keys, error_r) < 0 ||
index 3c7432440a2c02ee0f84d6257059ffc14d27709c..783b138baf42b5b0119ed359cb4e249b445b65b9 100644 (file)
@@ -498,7 +498,7 @@ int mail_crypt_user_set_private_key(struct mail_user *user, const char *pubid,
                return -1;
        }
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
 
        if ((ret = mail_crypt_set_private_key(t, TRUE, FALSE, pubid, enc_key, key,
                                              error_r)) < 0) {
@@ -522,7 +522,7 @@ int mail_crypt_box_set_private_key(struct mailbox *box, const char *pubid,
        int ret;
        struct mailbox_transaction_context *t;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        if ((ret = mail_crypt_set_private_key(t, FALSE, FALSE, pubid, user_key,
                                              key, error_r)) < 0) {
                mailbox_transaction_rollback(&t);
@@ -716,7 +716,7 @@ int mail_crypt_user_set_public_key(struct mail_user *user, const char *pubid,
                return -1;
        }
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
 
        if ((ret = mail_crypt_set_public_key(t, TRUE, pubid, key,
                                             error_r)) == 0) {
@@ -756,7 +756,7 @@ int mail_crypt_box_set_public_key(struct mailbox *box, const char *pubid,
        struct mailbox_transaction_context *t;
        struct mail_attribute_value value;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        if ((ret = mail_crypt_set_public_key(t, FALSE, pubid, key,
                                             error_r)) == 0) {
                value.value_stream = NULL;
index 4db1c85dbc81ceff9e8fdbc62237f4c0dd26b7a5..48685d1b40308b80844d21cd61729e03ab19d156 100644 (file)
@@ -409,7 +409,8 @@ static void test_old_key(void)
                i_fatal("mailbox_open(INBOX) failed: %s",
                        mailbox_get_last_internal_error(box, NULL));
 
-       struct mailbox_transaction_context *t = mailbox_transaction_begin(box, 0);
+       struct mailbox_transaction_context *t =
+               mailbox_transaction_begin(box, 0, __func__);
 
        test_mail_attribute_set(t, TRUE, FALSE, mcp_old_user_key_id,
                                mcp_old_user_key, &error);
index 3f76466978c399105bdc3903215e7bec092f5918..dd3afb638817984d23cb6561ef79eddb0899285c 100644 (file)
@@ -377,7 +377,7 @@ static int pop3_map_read(struct mail_storage *storage, struct mailbox *pop3_box)
                return -1;
        }
 
-       t = mailbox_transaction_begin(pop3_box, 0);
+       t = mailbox_transaction_begin(pop3_box, 0, __func__);
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
        ctx = mailbox_search_init(t, search_args, NULL,
@@ -479,7 +479,7 @@ map_read_hdr_hashes(struct mailbox *box, struct array *msg_map, uint32_t seq1)
        struct msg_map_common *map;
        int ret = 0;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        /* get all the cached hashes */
        search_args = mail_search_build_init();
        mail_search_build_add_seqset(search_args, seq1, array_count_i(msg_map));
@@ -560,7 +560,7 @@ static int imap_map_read(struct mailbox *box)
        i_assert(!array_is_created(&mbox->imap_msg_map));
        p_array_init(&mbox->imap_msg_map, box->pool, status.messages);
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
        ctx = mailbox_search_init(t, search_args, NULL,
@@ -803,7 +803,7 @@ static void imap_uidls_add_to_cache(struct mailbox *box)
        unsigned int i, count;
        unsigned int field_idx;
 
-       t = mailbox_transaction_begin(box, 0);
+       t = mailbox_transaction_begin(box, 0, __func__);
        mail = mail_alloc(t, 0, NULL);
        imail = INDEX_MAIL(mail);
        field_idx = imail->ibox->cache_fields[MAIL_CACHE_POP3_UIDL].idx;
index e89d8f44a83223ba0116573523f57e09515a92a4..a66ee34f12d38489d3fa3c187272e92cf53210ad 100644 (file)
@@ -451,8 +451,7 @@ static void quota_mailbox_sync_notify(struct mailbox *box, uint32_t uid,
                struct mail_index_view *box_view = box->view;
                if (box->tmp_sync_view != NULL)
                        box->view = box->tmp_sync_view;
-               qbox->expunge_trans = mailbox_transaction_begin(box, 0);
-               mailbox_transaction_set_reason(qbox->expunge_trans, "quota");
+               qbox->expunge_trans = mailbox_transaction_begin(box, 0, "quota");
                box->view = box_view;
                qbox->expunge_qt->tmp_mail =
                        mail_alloc(qbox->expunge_trans,
index 0ae74f007581083baa71b1f721d6aefe91f7c67f..721bb6d89a2c22ba04719b3e9df3b8b0ce17c5ff 100644 (file)
@@ -46,9 +46,10 @@ static int snarf(struct mailbox *srcbox, struct mailbox *destbox)
        if (mailbox_sync(srcbox, MAILBOX_SYNC_FLAG_FULL_READ) < 0)
                return -1;
 
-       src_trans = mailbox_transaction_begin(srcbox, 0);
+       src_trans = mailbox_transaction_begin(srcbox, 0, "snarf src_trans");
        dest_trans = mailbox_transaction_begin(destbox,
-                                       MAILBOX_TRANSACTION_FLAG_EXTERNAL);
+                                       MAILBOX_TRANSACTION_FLAG_EXTERNAL,
+                                       "snarf dest_trans");
 
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
index 08d2137e6db4e2d445521423ea4920af85599742..996fe97b67315c47a8e13cc39e6f29a988fbd66b 100644 (file)
@@ -61,7 +61,7 @@ static int trash_clean_mailbox_open(struct trash_mailbox *trash)
        if (mailbox_sync(trash->box, MAILBOX_SYNC_FLAG_FULL_READ) < 0)
                return -1;
 
-       trash->trans = mailbox_transaction_begin(trash->box, 0);
+       trash->trans = mailbox_transaction_begin(trash->box, 0, __func__);
 
        search_args = mail_search_build_init();
        mail_search_build_add_all(search_args);
index 475a624554f67c0ef166ec782b95d7c4b7fa7149..da7627527f638bf56d7bf03f2767ff095442d9e2 100644 (file)
@@ -113,7 +113,7 @@ virtual_backend_box_sync_mail_set(struct virtual_backend_box *bbox)
        struct mailbox_transaction_context *trans;
 
        if (bbox->sync_mail == NULL) {
-               trans = mailbox_transaction_begin(bbox->box, 0);
+               trans = mailbox_transaction_begin(bbox->box, 0, __func__);
                bbox->sync_mail = mail_alloc(trans, 0, NULL);
        }
 }
@@ -500,7 +500,7 @@ static int virtual_sync_backend_box_init(struct virtual_backend_box *bbox)
        enum mailbox_search_result_flags result_flags;
        int ret;
 
-       trans = mailbox_transaction_begin(bbox->box, 0);
+       trans = mailbox_transaction_begin(bbox->box, 0, __func__);
 
        if (!bbox->search_args_initialized) {
                mail_search_args_init(bbox->search_args, bbox->box, FALSE, NULL);
index 3d961f3276e9e353711b3a638d7d58d0c7907cf0..057836a4620fe16ad77b34a5ca733afd07e9afd1 100644 (file)
@@ -20,7 +20,7 @@ virtual_transaction_get(struct mailbox_transaction_context *trans,
                        return bt[i];
        }
 
-       new_bt = mailbox_transaction_begin(backend_box, trans->flags);
+       new_bt = mailbox_transaction_begin(backend_box, trans->flags, __func__);
        array_append(&vt->backend_transactions, &new_bt, 1);
        return new_bt;
 }
index 98ff819a92ab6972cc144e0f5410ae80d3e04ec7..deb6141dab65c125fb386160aeaa3a44ee327bce 100644 (file)
@@ -69,7 +69,7 @@ static void client_commit_timeout(struct client *client)
        }
 
        (void)mailbox_transaction_commit(&client->trans);
-       client->trans = mailbox_transaction_begin(client->mailbox, 0);
+       client->trans = mailbox_transaction_begin(client->mailbox, 0, __func__);
 }
 
 static void client_idle_timeout(struct client *client)
@@ -158,7 +158,7 @@ static int read_mailbox(struct client *client, uint32_t *failed_uid_r)
        client->uid_validity = status.uidvalidity;
        client->messages_count = status.messages;
 
-       t = mailbox_transaction_begin(client->mailbox, 0);
+       t = mailbox_transaction_begin(client->mailbox, 0, __func__);
 
        search_args = mail_search_build_init();
        if (client->deleted_kw != NULL) {
index 2986621c322b03cacdac3b065297f2e56348d70b..4bdbf533048b934b84771c093001c14b6b38a736 100644 (file)
@@ -529,7 +529,8 @@ static int cmd_rset(struct client *client, const char *args ATTR_UNUSED)
                (void)mailbox_search_deinit(&search_ctx);
 
                (void)mailbox_transaction_commit(&client->trans);
-               client->trans = mailbox_transaction_begin(client->mailbox, 0);
+               client->trans = mailbox_transaction_begin(client->mailbox, 0,
+                                                         __func__);
        }
 
        client_send_line(client, "+OK");