From: Timo Sirainen Date: Sat, 13 Dec 2008 13:22:34 +0000 (+0200) Subject: mmap_disable=yes: Opening index always tried to read it from transaction log. X-Git-Tag: 1.2.alpha5~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2b8fab6d39e8d1dbd3d546d2577fc1caeafdd64a;p=thirdparty%2Fdovecot%2Fcore.git mmap_disable=yes: Opening index always tried to read it from transaction log. This caused more disk I/O than necessary. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-index-map.c b/src/lib-index/mail-index-map.c index 891d1131c6..2e32a92f5d 100644 --- a/src/lib-index/mail-index-map.c +++ b/src/lib-index/mail-index-map.c @@ -927,8 +927,8 @@ int mail_index_map(struct mail_index *index, index->map = mail_index_map_alloc(index); /* first try updating the existing mapping from transaction log. */ - if (index->map->hdr.indexid != 0 && index->indexid != 0) { - /* we're not creating the index, or opening transaction log. + if (index->initial_mapped) { + /* we're not creating/opening the index. sync this as a view from transaction log. */ ret = mail_index_sync_map(&index->map, type, FALSE); } else { @@ -957,6 +957,7 @@ int mail_index_map(struct mail_index *index, } } + index->initial_mapped = TRUE; index->mapping = FALSE; return ret; } diff --git a/src/lib-index/mail-index-private.h b/src/lib-index/mail-index-private.h index aa247a99e1..e248618072 100644 --- a/src/lib-index/mail-index-private.h +++ b/src/lib-index/mail-index-private.h @@ -226,6 +226,7 @@ struct mail_index { unsigned int need_recreate:1; unsigned int modseqs_enabled:1; unsigned int initial_create:1; + unsigned int initial_mapped:1; }; extern struct mail_index_module_register mail_index_module_register;