Mercurial > dovecot > core-2.2
changeset 12394:7f8f73bed7f9
lib-index: Fix to transaction log read optimization.
The log wasn't always refreshed while locked when it should have.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 05 Nov 2010 18:58:56 +0000 |
parents | 57477db05aff |
children | 878746da7992 |
files | src/lib-index/mail-transaction-log-file.c |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-transaction-log-file.c Fri Nov 05 12:24:01 2010 +0000 +++ b/src/lib-index/mail-transaction-log-file.c Fri Nov 05 18:58:56 2010 +0000 @@ -1564,9 +1564,6 @@ end_offset = file->sync_offset; } - if (file->locked) - file->locked_sync_offset_updated = TRUE; - if (file->buffer != NULL && file->buffer_offset <= start_offset) { /* see if we already have it */ size = buffer_get_used_size(file->buffer); @@ -1574,6 +1571,12 @@ return 1; } + if (file->locked) { + /* set this only when we've synced to end of file while locked + (either end_offset=(uoff_t)-1 or we had to read anyway) */ + file->locked_sync_offset_updated = TRUE; + } + if (MAIL_TRANSACTION_LOG_FILE_IN_MEMORY(file)) { if (start_offset < file->buffer_offset) { /* we had moved the log to memory but failed to read