From: Timo Sirainen Date: Mon, 19 Jul 2010 12:02:24 +0000 (+0100) Subject: mdbox: Copying wasn't locking map index early enough. X-Git-Tag: 2.0.rc3~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1612f8421207632e1dc9addd6c23e7f7098a54c;p=thirdparty%2Fdovecot%2Fcore.git mdbox: Copying wasn't locking map index early enough. --- diff --git a/src/lib-storage/index/dbox-multi/mdbox-save.c b/src/lib-storage/index/dbox-multi/mdbox-save.c index 7a4a5ddb3c..abfe69246a 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-save.c +++ b/src/lib-storage/index/dbox-multi/mdbox-save.c @@ -286,6 +286,10 @@ int mdbox_transaction_save_commit_pre(struct mail_save_context *_ctx) i_assert(ctx->ctx.finished); + /* make sure the map gets locked */ + if (mdbox_map_atomic_lock(ctx->atomic) < 0) + return -1; + /* assign map UIDs for newly saved messages. they're written to transaction log immediately within this function, but the map is left locked. */