# HG changeset patch # User Timo Sirainen # Date 1192970382 -10800 # Node ID 0e46072f797a293ba2508f4303038904650c6e1e # Parent fd01ec16611f6b656a72b87dd4d875728b285f4f Don't give "Newly added field got lost unexpectedly" errors when cache file is created while adding a new field. diff -r fd01ec16611f -r 0e46072f797a src/lib-index/mail-cache-transaction.c --- 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)