changeset 2863:f922505b5ade HEAD

Allow calling mail_index_fsck() with log locked.
author Timo Sirainen <tss@iki.fi>
date Sun, 07 Nov 2004 20:55:15 +0200
parents 6a8c73bfbcad
children 890e1deba03e
files src/lib-index/mail-index-fsck.c
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index-fsck.c	Sun Nov 07 20:52:30 2004 +0200
+++ b/src/lib-index/mail-index-fsck.c	Sun Nov 07 20:55:15 2004 +0200
@@ -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",