dovecot: Drop read_highwater position when invalidating if possi...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Nov 8 04:10:34 EET 2007
details: http://hg.dovecot.org/dovecot/rev/f4b266590003
changeset: 6732:f4b266590003
user: Timo Sirainen <tss at iki.fi>
date: Thu Nov 08 04:10:30 2007 +0200
description:
Drop read_highwater position when invalidating if possible.
diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
src/lib/file-cache.c | 9 ++++++++-
diffs (20 lines):
diff -r 42acb5629519 -r f4b266590003 src/lib/file-cache.c
--- a/src/lib/file-cache.c Thu Nov 08 04:01:03 2007 +0200
+++ b/src/lib/file-cache.c Thu Nov 08 04:10:30 2007 +0200
@@ -269,8 +269,15 @@ void file_cache_invalidate(struct file_c
if (offset >= cache->read_highwater || size == 0)
return;
- if (size > cache->read_highwater - offset)
+ if (size > cache->read_highwater - offset) {
+ /* ignore anything after read highwater */
size = cache->read_highwater - offset;
+ }
+ if (size >= cache->read_highwater) {
+ /* we're invalidating everything up to read highwater.
+ drop the highwater position. */
+ cache->read_highwater = offset & ~(page_size-1);
+ }
size = (offset + size + page_size-1) / page_size;
offset /= page_size;
More information about the dovecot-cvs
mailing list