dovecot-1.2: maildir: Avoid unnecessary uidlist recreation durin...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Sep 8 19:43:51 EEST 2010
details: http://hg.dovecot.org/dovecot-1.2/rev/d2da54c3d829
changeset: 9613:d2da54c3d829
user: Timo Sirainen <tss at iki.fi>
date: Wed Sep 08 17:43:33 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 c4b2e4f4ff79 -r d2da54c3d829 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 Wed Sep 08 17:43:33 2010 +0100
@@ -89,6 +89,7 @@
string_t *hdr_extensions;
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;
@@ -758,7 +759,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)
@@ -1375,6 +1376,7 @@
uidlist->fd_size = st.st_size;
uidlist->last_read_offset = st.st_size;
uidlist->recreate = FALSE;
+ uidlist->recreate_on_change = FALSE;
maildir_uidlist_update_hdr(uidlist, &st);
}
if (ret < 0)
@@ -1446,7 +1448,7 @@
}
- 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