[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