dovecot-2.2: lib-index: Fixed invalidating buffered cache file w...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 16 18:57:45 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/0b0399f1b6aa
changeset: 15793:0b0399f1b6aa
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Jan 29 17:55:20 2013 +0200
description:
lib-index: Fixed invalidating buffered cache file with map_with_read.

diffstat:

 src/lib-index/mail-cache-fields.c      |  2 ++
 src/lib-index/mail-cache-sync-update.c |  5 +++++
 src/lib-index/mail-cache.c             |  2 ++
 3 files changed, 9 insertions(+), 0 deletions(-)

diffs (51 lines):

diff -r 99b7be36631b -r 0b0399f1b6aa src/lib-index/mail-cache-fields.c
--- a/src/lib-index/mail-cache-fields.c	Tue Jan 22 16:53:52 2013 +0200
+++ b/src/lib-index/mail-cache-fields.c	Tue Jan 29 17:55:20 2013 +0200
@@ -285,6 +285,8 @@
 			file_cache_invalidate(cache->file_cache, offset,
 					      field_hdr_size);
 		}
+		if (cache->read_buf != NULL && invalidate)
+			buffer_set_used_size(cache->read_buf, 0);
 		ret = mail_cache_map(cache, offset, field_hdr_size, &data);
 		if (ret < 0)
 			return -1;
diff -r 99b7be36631b -r 0b0399f1b6aa src/lib-index/mail-cache-sync-update.c
--- a/src/lib-index/mail-cache-sync-update.c	Tue Jan 22 16:53:52 2013 +0200
+++ b/src/lib-index/mail-cache-sync-update.c	Tue Jan 29 17:55:20 2013 +0200
@@ -1,6 +1,7 @@
 /* Copyright (c) 2004-2012 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
+#include "buffer.h"
 #include "file-cache.h"
 #include "mail-cache-private.h"
 #include "mail-index-view-private.h"
@@ -144,6 +145,8 @@
 					      ctx->invalidate_highwater -
 					      *new_cache_offset);
 			ctx->invalidate_highwater = *new_cache_offset;
+			if (cache->read_buf != NULL)
+				buffer_set_used_size(cache->read_buf, 0);
 		}
 	}
 
@@ -188,4 +191,6 @@
 					    cache->fd, cache->locked);
 	}
 	file_cache_invalidate(cache->file_cache, 0, (uoff_t)-1);
+	if (cache->read_buf != NULL)
+		buffer_set_used_size(cache->read_buf, 0);
 }
diff -r 99b7be36631b -r 0b0399f1b6aa src/lib-index/mail-cache.c
--- a/src/lib-index/mail-cache.c	Tue Jan 22 16:53:52 2013 +0200
+++ b/src/lib-index/mail-cache.c	Tue Jan 29 17:55:20 2013 +0200
@@ -705,6 +705,8 @@
 			file_cache_invalidate(cache->file_cache, 0,
 					      sizeof(struct mail_cache_header));
 		}
+		if (cache->read_buf != NULL)
+			buffer_set_used_size(cache->read_buf, 0);
 		if (mail_cache_map(cache, 0, 0, &data) > 0)
 			cache->hdr_copy = *cache->hdr;
 		else {


More information about the dovecot-cvs mailing list