changeset 13594:65696275eaa6

maildir: Maildir list index change check should always check index log changes. (Not only when maildir_very_dirty_syncs=no)
author Timo Sirainen <tss@iki.fi>
date Sun, 02 Oct 2011 18:54:32 +0300
parents 37c078f1745c
children c2a173716500
files src/lib-storage/index/maildir/maildir-sync-index.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-sync-index.c	Sun Oct 02 18:49:09 2011 +0300
+++ b/src/lib-storage/index/maildir/maildir-sync-index.c	Sun Oct 02 18:54:32 2011 +0300
@@ -710,9 +710,13 @@
 	struct stat st;
 	uint32_t ext_id;
 	bool expunged;
+	int ret;
 
+	ret = index_storage_list_index_has_changed(box, list_view, seq);
+	if (ret != 0)
+		return ret;
 	if (mbox->storage->set->maildir_very_dirty_syncs)
-		return index_storage_list_index_has_changed(box, list_view, seq);
+		return 0;
 
 	ext_id = maildir_list_get_ext_id(mbox, list_view);
 	mail_index_lookup_ext(list_view, seq, ext_id, &data, &expunged);
@@ -762,10 +766,9 @@
 	uint32_t ext_id;
 	bool expunged;
 
-	if (mbox->storage->set->maildir_very_dirty_syncs) {
-		index_storage_list_index_update_sync(box, trans, seq);
+	index_storage_list_index_update_sync(box, trans, seq);
+	if (mbox->storage->set->maildir_very_dirty_syncs)
 		return;
-	}
 
 	/* get the current record */
 	list_view = mail_index_transaction_get_view(trans);