dovecot-2.0: maildir: Avoid unnecessary uidlist recreation durin...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Sep 7 18:32:20 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/c7e1c71c5ec5
changeset: 12082:c7e1c71c5ec5
user: Timo Sirainen <tss at iki.fi>
date: Tue Sep 07 16:32:17 2010 +0100
description:
maildir: Avoid unnecessary uidlist recreation during mail delivery.
diffstat:
src/lib-storage/index/maildir/maildir-uidlist.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diffs (37 lines):
diff -r 65b0e7b4eda9 -r c7e1c71c5ec5 src/lib-storage/index/maildir/maildir-uidlist.c
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Tue Sep 07 16:23:03 2010 +0100
+++ b/src/lib-storage/index/maildir/maildir-uidlist.c Tue Sep 07 16:32:17 2010 +0100
@@ -93,6 +93,7 @@
uint8_t mailbox_guid[MAIL_GUID_128_SIZE];
unsigned int recreate:1;
+ unsigned int recreate_on_change:1;
unsigned int initial_read:1;
unsigned int initial_hdr_read:1;
unsigned int retry_rewind:1;
@@ -778,7 +779,7 @@
ret = -1;
if (uidlist->unsorted) {
- uidlist->recreate = TRUE;
+ uidlist->recreate_on_change = TRUE;
maildir_uidlist_records_sort_by_uid(uidlist);
}
if (uidlist->next_uid <= uidlist->prev_read_uid)
@@ -1453,6 +1454,7 @@
uidlist->fd_size = st.st_size;
uidlist->last_read_offset = st.st_size;
uidlist->recreate = FALSE;
+ uidlist->recreate_on_change = FALSE;
uidlist->have_mailbox_guid = TRUE;
maildir_uidlist_update_hdr(uidlist, &st);
}
@@ -1515,7 +1517,7 @@
struct stat st;
uoff_t file_size;
- if (maildir_uidlist_want_recreate(ctx))
+ if (maildir_uidlist_want_recreate(ctx) || uidlist->recreate_on_change)
return maildir_uidlist_recreate(uidlist);
if (!uidlist->locked_refresh || uidlist->fd == -1) {
More information about the dovecot-cvs
mailing list