[dovecot-cvs] dovecot/src/lib-storage/index index-status.c, 1.39, 1.40 index-sync.c, 1.59, 1.60 index-transaction.c, 1.16, 1.17

tss at dovecot.org tss at dovecot.org
Thu Dec 28 20:15:10 UTC 2006


Update of /var/lib/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv7093/index

Modified Files:
	index-status.c index-sync.c index-transaction.c 
Log Message:
Call mail_index_view_unlock() only when all transactions are finished.



Index: index-status.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-status.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- index-status.c	10 Dec 2006 13:00:44 -0000	1.39
+++ index-status.c	28 Dec 2006 20:15:08 -0000	1.40
@@ -44,6 +44,7 @@
 		index_storage_mailbox_open(ibox);
 
 	ret = index_storage_get_status_locked(ibox, items, status);
-	mail_index_view_unlock(ibox->view);
+	if (box->transaction_count == 0)
+		mail_index_view_unlock(ibox->view);
 	return ret;
 }

Index: index-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-sync.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- index-sync.c	25 Nov 2006 22:17:41 -0000	1.59
+++ index-sync.c	28 Dec 2006 20:15:08 -0000	1.60
@@ -321,7 +321,8 @@
 							status_r);
 	}
 
-	mail_index_view_unlock(ctx->ibox->view);
+	if (ibox->box.transaction_count == 0)
+		mail_index_view_unlock(ibox->view);
 	i_free(ctx);
 	return ret;
 }

Index: index-transaction.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-transaction.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- index-transaction.c	10 Dec 2006 13:00:45 -0000	1.16
+++ index-transaction.c	28 Dec 2006 20:15:08 -0000	1.17
@@ -23,7 +23,8 @@
 {
 	mail_cache_view_close(t->cache_view);
 	mail_index_view_close(&t->trans_view);
-	mail_index_view_unlock(t->ibox->view);
+	if (t->ibox->box.transaction_count == 0)
+		mail_index_view_unlock(t->ibox->view);
 	array_free(&t->mailbox_ctx.module_contexts);
 	i_free(t);
 }



More information about the dovecot-cvs mailing list