From: Timo Sirainen Date: Sun, 20 Jul 2008 12:41:57 +0000 (+0300) Subject: Maildir: Check more correctly when we should update/recreate uidlist. X-Git-Tag: 1.2.alpha1~146 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8b23843fb938c0a8f19f4abdb6c2a04b898a2b1;p=thirdparty%2Fdovecot%2Fcore.git Maildir: Check more correctly when we should update/recreate uidlist. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/maildir/maildir-uidlist.c b/src/lib-storage/index/maildir/maildir-uidlist.c index 459f584e8d..f9e9def33a 100644 --- a/src/lib-storage/index/maildir/maildir-uidlist.c +++ b/src/lib-storage/index/maildir/maildir-uidlist.c @@ -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); }