[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