From 2b8fab6d39e8d1dbd3d546d2577fc1caeafdd64a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 13 Dec 2008 15:22:34 +0200 Subject: [PATCH] mmap_disable=yes: Opening index always tried to read it from transaction log. This caused more disk I/O than necessary. --HG-- branch : HEAD --- src/lib-index/mail-index-map.c | 5 +++-- src/lib-index/mail-index-private.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) 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; -- 2.47.3