array_free(&ext_offsets);
if (*unlock) {
- (void)mail_cache_flush_and_unlock(cache);
+ mail_cache_unlock(cache);
*unlock = FALSE;
}
cache->need_compress_file_seq = 0;
if (*unlock) {
- (void)mail_cache_flush_and_unlock(cache);
+ (void)mail_cache_unlock(cache);
*unlock = FALSE;
}
cache->compressing = TRUE;
ret = mail_cache_compress_locked(cache, compress_file_seq, trans, &unlock);
cache->compressing = FALSE;
- if (unlock) {
- if (mail_cache_flush_and_unlock(cache) < 0)
- ret = -1;
- }
+ if (unlock)
+ mail_cache_unlock(cache);
+ i_assert(!cache->hdr_modified);
if (ret < 0) {
/* the fields may have been updated in memory already.
reverse those changes by re-reading them from file. */
T_BEGIN {
ret = mail_cache_header_fields_update_locked(cache);
} T_END;
- if (mail_cache_flush_and_unlock(cache) < 0)
- ret = -1;
+ i_assert(!cache->hdr_modified);
+ mail_cache_unlock(cache);
return ret;
}
it to free up some space. */
if (cache->hdr->continued_record_count > 0 ||
cache->hdr->deleted_record_count > 0) {
- (void)mail_cache_flush_and_unlock(cache);
+ mail_cache_unlock(cache);
(void)mail_cache_transaction_compress(ctx);
return mail_cache_transaction_lock(ctx);
}
i_assert(ctx->last_rec_pos <= ctx->cache_data->used);
if (mail_cache_transaction_update_fields(ctx) < 0) {
- (void)mail_cache_flush_and_unlock(ctx->cache);
+ mail_cache_unlock(ctx->cache);
return -1;
}
if (cache->read_buf != NULL)
buffer_set_used_size(cache->read_buf, 0);
if ((ret = mail_cache_map_all(cache)) <= 0) {
- (void)mail_cache_flush_and_unlock(cache);
+ mail_cache_unlock(cache);
return ret;
}
cache->hdr_copy = *cache->hdr;