changeset 7878:1da72e385de4 HEAD

Rotated transaction logs weren't always unlocked, potentially causing other processes to fail with timeout errors.
author Timo Sirainen <tss@iki.fi>
date Tue, 17 Jun 2008 12:36:25 +0300
parents 2e75e5a42f0e
children bc05d48eac44
files src/lib-index/mail-transaction-log.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log.c	Tue Jun 17 12:36:15 2008 +0300
+++ b/src/lib-index/mail-transaction-log.c	Tue Jun 17 12:36:25 2008 +0300
@@ -207,6 +207,11 @@
 
 		mail_transaction_log_file_free(&file);
 	}
+	/* if we still have locked files with refcount=0, unlock them */
+	for (; file != NULL; file = file->next) {
+		if (file->locked && file->refcount == 0)
+			mail_transaction_log_file_unlock(file);
+	}
 	i_assert(log->head == NULL || log->files != NULL);
 }