[dovecot-cvs] dovecot/src/lib-index mail-index.c,1.103,1.104

cras at procontrol.fi cras at procontrol.fi
Thu Nov 13 21:32:09 EET 2003


Update of /home/cvs/dovecot/src/lib-index
In directory danu:/tmp/cvs-serv1831

Modified Files:
	mail-index.c 
Log Message:
update lock counters with in-memory indexes too



Index: mail-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- mail-index.c	9 Nov 2003 18:23:20 -0000	1.103
+++ mail-index.c	13 Nov 2003 19:32:07 -0000	1.104
@@ -434,6 +434,12 @@
 	if (index->lock_type == lock_type)
 		return TRUE;
 
+	if (index->lock_type == MAIL_LOCK_EXCLUSIVE) {
+		index->excl_lock_counter++;
+		if (index->modifylog != NULL)
+			mail_modifylog_notify_lock_drop(index->modifylog);
+	}
+
 	if (index->anon_mmap) {
 		/* anonymous mmaps are private and don't need any locking */
 #ifdef DEBUG
@@ -449,10 +455,6 @@
 	}
 
 	if (index->lock_type == MAIL_LOCK_EXCLUSIVE) {
-		index->excl_lock_counter++;
-		if (index->modifylog != NULL)
-			mail_modifylog_notify_lock_drop(index->modifylog);
-
 		/* dropping exclusive lock (either unlock or to shared) */
 		keep_fsck = (index->set_flags & MAIL_INDEX_HDR_FLAG_FSCK) != 0;
 		mail_index_update_header_changes(index);
@@ -465,8 +467,7 @@
 		/* remove the FSCK flag only after successful fsync() */
 		if (mail_index_sync_file(index) && !keep_fsck) {
 			index->header->flags &= ~MAIL_INDEX_HDR_FLAG_FSCK;
-			if (!index->anon_mmap &&
-			    msync(index->mmap_base, index->header_size,
+			if (msync(index->mmap_base, index->header_size,
 				  MS_SYNC) < 0) {
 				/* we only failed to remove the fsck flag,
 				   so this isn't fatal. */



More information about the dovecot-cvs mailing list