Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6589:0e46072f797a HEAD
Don't give "Newly added field got lost unexpectedly" errors when cache file
is created while adding a new field.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 21 Oct 2007 15:39:42 +0300 |
parents | fd01ec16611f |
children | b9b201f5c581 |
files | src/lib-index/mail-cache-transaction.c |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-cache-transaction.c Sun Oct 21 15:28:53 2007 +0300 +++ b/src/lib-index/mail-cache-transaction.c Sun Oct 21 15:39:42 2007 +0300 @@ -722,9 +722,6 @@ buffer_t *buffer; int ret; - cache->fields[field_idx].last_used = ioloop_time; - cache->fields[field_idx].used = TRUE; - if ((ret = mail_cache_transaction_lock(ctx)) <= 0) { /* create the cache file if it doesn't exist yet */ if (ctx->tried_compression) @@ -743,6 +740,10 @@ return -1; } + /* update these only after reading */ + cache->fields[field_idx].last_used = ioloop_time; + cache->fields[field_idx].used = TRUE; + if (cache->field_file_map[field_idx] != (uint32_t)-1) { /* it was already added */ if (mail_cache_unlock(cache) < 0)