[dovecot-cvs] dovecot/src/lib-index mail-index-fsck.c,1.23,1.24
cras at dovecot.org
cras at dovecot.org
Sun Nov 7 20:55:18 EET 2004
Update of /var/lib/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv14973
Modified Files:
mail-index-fsck.c
Log Message:
Allow calling mail_index_fsck() with log locked.
Index: mail-index-fsck.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-index/mail-index-fsck.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- mail-index-fsck.c 24 Jun 2004 11:10:41 -0000 1.23
+++ mail-index-fsck.c 7 Nov 2004 18:55:15 -0000 1.24
@@ -112,11 +112,14 @@
unsigned int lock_id;
uint32_t file_seq;
uoff_t file_offset;
- int ret;
+ int ret, lock_log;
- if (mail_transaction_log_sync_lock(index->log, &file_seq,
- &file_offset) < 0)
- return -1;
+ lock_log = !index->log_locked;
+ if (lock_log) {
+ if (mail_transaction_log_sync_lock(index->log, &file_seq,
+ &file_offset) < 0)
+ return -1;
+ }
if (mail_index_lock_exclusive(index, &lock_id) < 0) {
mail_transaction_log_sync_unlock(index->log);
return -1;
@@ -128,7 +131,8 @@
ret = mail_index_fsck_locked(index, &error);
mail_index_unlock(index, lock_id);
- mail_transaction_log_sync_unlock(index->log);
+ if (lock_log)
+ mail_transaction_log_sync_unlock(index->log);
if (error != NULL) {
mail_index_set_error(index, "Corrupted index file %s: %s",
More information about the dovecot-cvs
mailing list