From: Timo Sirainen Date: Sat, 20 Feb 2010 09:45:52 +0000 (+0200) Subject: lib-index: Keep indexes open while they are in alloc-cache. X-Git-Tag: 2.0.beta3~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=704553de3c243d766c782e5f1b0fecc0fcc6fc23;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Keep indexes open while they are in alloc-cache. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-index-alloc-cache.c b/src/lib-index/mail-index-alloc-cache.c index 1f62929267..2d18b1fdb0 100644 --- a/src/lib-index/mail-index-alloc-cache.c +++ b/src/lib-index/mail-index-alloc-cache.c @@ -58,6 +58,8 @@ mail_index_alloc_cache_add(struct mail_index *index, static void mail_index_alloc_cache_list_free(struct mail_index_alloc_cache_list *list) { + if (list->index->open_count > 0) + mail_index_close(list->index); mail_index_free(&list->index); i_free(list->mailbox_path); i_free(list); @@ -212,5 +214,7 @@ void mail_index_alloc_cache_index_opened(struct mail_index *index) list->index_dir_ino = st.st_ino; list->index_dir_dev = st.st_dev; } + /* keep it referenced for ourself */ + index->open_count++; } }