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