From c866a0378c3ecaa30610373e75dc3118bad5b232 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 27 May 2016 21:55:56 +0300 Subject: [PATCH] dbox: Revert cache changes if some save/copy fails but transaction is committed. --- src/lib-storage/index/dbox-multi/mdbox-save.c | 1 + src/lib-storage/index/dbox-single/sdbox-save.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/lib-storage/index/dbox-multi/mdbox-save.c b/src/lib-storage/index/dbox-multi/mdbox-save.c index 6d1b354f77..857ff7b7b2 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-save.c +++ b/src/lib-storage/index/dbox-multi/mdbox-save.c @@ -216,6 +216,7 @@ static int mdbox_save_finish_write(struct mail_save_context *_ctx) if (ctx->ctx.failed) { mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq); + mail_cache_transaction_reset(ctx->ctx.ctx.transaction->cache_trans); mdbox_map_append_abort(ctx->append_ctx); array_delete(&ctx->mails, array_count(&ctx->mails) - 1, 1); return -1; diff --git a/src/lib-storage/index/dbox-single/sdbox-save.c b/src/lib-storage/index/dbox-single/sdbox-save.c index 919a628225..9f0eff8852 100644 --- a/src/lib-storage/index/dbox-single/sdbox-save.c +++ b/src/lib-storage/index/dbox-single/sdbox-save.c @@ -195,6 +195,7 @@ static int dbox_save_finish_write(struct mail_save_context *_ctx) if (ctx->ctx.failed) { mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq); + mail_cache_transaction_reset(ctx->ctx.ctx.transaction->cache_trans); dbox_file_append_rollback(&ctx->append_ctx); dbox_file_unlink(*files); dbox_file_unref(files);