changeset 22325:e01bc3015b2f

lib-index: Check .log.2 rotation only when syncing Instead of also whenever appending transactions to .log file. This shouldn't change the behavior much, and it's needed for the following change to work correctly.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 11 Jul 2017 15:33:56 +0300
parents 8be59fab1d63
children ba1a35c5ead7
files src/lib-index/mail-transaction-log.c
diffstat 1 files changed, 11 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log.c	Tue Jul 11 15:32:33 2017 +0300
+++ b/src/lib-index/mail-transaction-log.c	Tue Jul 11 15:33:56 2017 +0300
@@ -467,17 +467,6 @@
 	const char *reason;
 	int ret = 0;
 
-	if (!log->log_2_unlink_checked) {
-		/* we need to check once in a while if .log.2 should be deleted
-		   to avoid wasting space on such old files. but we also don't
-		   want to waste time on checking it when the same mailbox
-		   gets opened over and over again rapidly (e.g. pop3). so
-		   do this only when there have actually been some changes
-		   to mailbox (i.e. when it's being locked here) */
-		log->log_2_unlink_checked = TRUE;
-		mail_transaction_log_2_unlink_old(log);
-	}
-
 	/* we want to get the head file locked. this is a bit racy,
 	   since by the time we have it locked a new log file may have been
 	   created.
@@ -534,6 +523,17 @@
 
 	i_assert(!log->index->log_sync_locked);
 
+	if (!log->log_2_unlink_checked) {
+		/* we need to check once in a while if .log.2 should be deleted
+		   to avoid wasting space on such old files. but we also don't
+		   want to waste time on checking it when the same mailbox
+		   gets opened over and over again rapidly (e.g. pop3). so
+		   do this only when there have actually been some changes
+		   to mailbox (i.e. when it's being locked here) */
+		log->log_2_unlink_checked = TRUE;
+		mail_transaction_log_2_unlink_old(log);
+	}
+
 	if (mail_transaction_log_lock_head(log, lock_reason) < 0)
 		return -1;