[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