[dovecot-cvs] dovecot/src/lib-index mail-transaction-log.c, 1.74, 1.75

cras at dovecot.org cras at dovecot.org
Wed Nov 24 22:41:37 EET 2004


Update of /var/lib/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv9466

Modified Files:
	mail-transaction-log.c 
Log Message:
When committing transaction, don't do index locking unless we really want to
try rotating the log file.



Index: mail-transaction-log.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-transaction-log.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- mail-transaction-log.c	13 Nov 2004 23:08:07 -0000	1.74
+++ mail-transaction-log.c	24 Nov 2004 20:41:35 -0000	1.75
@@ -1224,19 +1224,19 @@
 		}
 	}
 
-	if (mail_index_lock_shared(log->index, TRUE, &lock_id) < 0) {
-		if (!log->index->log_locked)
-			mail_transaction_log_file_unlock(log->head);
-		return -1;
-	}
-	idx_hdr = *log->index->hdr;
-	mail_index_unlock(log->index, lock_id);
-
 	if (log->head->sync_offset > MAIL_TRANSACTION_LOG_ROTATE_SIZE &&
 	    log->head->last_mtime <
 	    ioloop_time - MAIL_TRANSACTION_LOG_ROTATE_MIN_TIME) {
 		/* we might want to rotate, but check first that everything is
 		   synced in index. */
+		if (mail_index_lock_shared(log->index, TRUE, &lock_id) < 0) {
+			if (!log->index->log_locked)
+				mail_transaction_log_file_unlock(log->head);
+			return -1;
+		}
+		idx_hdr = *log->index->hdr;
+		mail_index_unlock(log->index, lock_id);
+
 		if (log->head->hdr.file_seq == idx_hdr.log_file_seq &&
 		    log->head->sync_offset == idx_hdr.log_file_int_offset &&
 		    log->head->sync_offset == idx_hdr.log_file_ext_offset) {



More information about the dovecot-cvs mailing list