]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mdbox: Minor optimization for syncing expunges.
authorTimo Sirainen <tss@iki.fi>
Mon, 19 Apr 2010 13:36:42 +0000 (16:36 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 19 Apr 2010 13:36:42 +0000 (16:36 +0300)
--HG--
branch : HEAD

src/lib-storage/index/dbox-multi/mdbox-sync.c

index b9bfa25a4e02a5cce677e30e55825e39eb295c43..6650872f0370d18fe173e3deac40dff282941dde 100644 (file)
@@ -26,8 +26,6 @@
 #include <stdlib.h>
 #include <dirent.h>
 
-#define DBOX_REBUILD_COUNT 3
-
 static int
 dbox_sync_verify_expunge_guid(struct mdbox_sync_context *ctx, uint32_t seq,
                              const uint8_t guid_128[MAIL_GUID_128_SIZE])
@@ -56,20 +54,17 @@ static int mdbox_sync_expunge(struct mdbox_sync_context *ctx, uint32_t seq,
 {
        uint32_t map_uid;
 
-       if (seq_range_exists(&ctx->expunged_seqs, seq)) {
+       if (seq_range_array_add(&ctx->expunged_seqs, 0, seq)) {
                /* already marked as expunged in this sync */
                return 0;
        }
 
        if (dbox_sync_verify_expunge_guid(ctx, seq, guid_128) < 0)
                return -1;
-
        if (mdbox_mail_lookup(ctx->mbox, ctx->sync_view, seq, &map_uid) < 0)
                return -1;
-
        if (dbox_map_update_refcount(ctx->map_trans, map_uid, -1) < 0)
                return -1;
-       seq_range_array_add(&ctx->expunged_seqs, 0, seq);
        return 0;
 }