]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Maildir: Check more correctly when we should update/recreate uidlist.
authorTimo Sirainen <tss@iki.fi>
Sun, 20 Jul 2008 12:41:57 +0000 (15:41 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 20 Jul 2008 12:41:57 +0000 (15:41 +0300)
--HG--
branch : HEAD

src/lib-storage/index/maildir/maildir-uidlist.c

index 459f584e8d6c5fa936f434e45660877902312fe0..f9e9def33a2655b555cbaf2d54c446ab676cde02 100644 (file)
@@ -1161,6 +1161,9 @@ static bool maildir_uidlist_want_compress(struct maildir_uidlist_sync_ctx *ctx)
 {
        unsigned int min_rewrite_count;
 
+       if (!ctx->uidlist->initial_read)
+               return FALSE;
+
        min_rewrite_count =
                (ctx->uidlist->read_records_count + ctx->new_files_count) *
                UIDLIST_COMPRESS_PERCENTAGE / 100;
@@ -1171,14 +1174,15 @@ static bool maildir_uidlist_want_recreate(struct maildir_uidlist_sync_ctx *ctx)
 {
        struct maildir_uidlist *uidlist = ctx->uidlist;
 
+       if (uidlist->recreate ||
+           ctx->finish_change_counter != uidlist->change_counter)
+               return TRUE;
+
        if (!uidlist->initial_read)
                return FALSE;
 
-       if (uidlist->recreate || uidlist->fd == -1 ||
-           uidlist->version != UIDLIST_VERSION ||
-           ctx->finish_change_counter != uidlist->change_counter)
+       if (uidlist->fd == -1 || uidlist->version != UIDLIST_VERSION)
                return TRUE;
-
        return maildir_uidlist_want_compress(ctx);
 }