From: Timo Sirainen Date: Mon, 13 Jul 2009 23:26:07 +0000 (-0400) Subject: Fix to previous cache changes: Cache transaction was commited too early. X-Git-Tag: 2.0.alpha1~433 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=398d66217c5916b14485714954c14cf8af0c8547;p=thirdparty%2Fdovecot%2Fcore.git Fix to previous cache changes: Cache transaction was commited too early. --HG-- branch : HEAD --- diff --git a/src/lib-storage/index/cydir/cydir-transaction.c b/src/lib-storage/index/cydir/cydir-transaction.c index 7e73284dba..4966c16c9d 100644 --- a/src/lib-storage/index/cydir/cydir-transaction.c +++ b/src/lib-storage/index/cydir/cydir-transaction.c @@ -66,13 +66,11 @@ static void cydir_transaction_created(struct mail_index_transaction *t) mt = i_new(struct cydir_transaction_context, 1); mt->ictx.trans = t; - mt->ictx.super = t->v; + index_transaction_init(&mt->ictx, &cydir->ibox); t->v.commit = cydir_transaction_commit; t->v.rollback = cydir_transaction_rollback; MODULE_CONTEXT_SET(t, mail_storage_mail_index_module, mt); - - index_transaction_init(&mt->ictx, &cydir->ibox); } if (next_hook_mail_index_transaction_created != NULL) diff --git a/src/lib-storage/index/dbox/dbox-transaction.c b/src/lib-storage/index/dbox/dbox-transaction.c index ff06866b3c..f662145ae4 100644 --- a/src/lib-storage/index/dbox/dbox-transaction.c +++ b/src/lib-storage/index/dbox/dbox-transaction.c @@ -66,13 +66,11 @@ static void dbox_transaction_created(struct mail_index_transaction *t) mt = i_new(struct dbox_transaction_context, 1); mt->ictx.trans = t; - mt->ictx.super = t->v; + index_transaction_init(&mt->ictx, &dbox->ibox); t->v.commit = dbox_transaction_commit; t->v.rollback = dbox_transaction_rollback; MODULE_CONTEXT_SET(t, mail_storage_mail_index_module, mt); - - index_transaction_init(&mt->ictx, &dbox->ibox); } if (next_hook_mail_index_transaction_created != NULL) diff --git a/src/lib-storage/index/index-transaction.c b/src/lib-storage/index/index-transaction.c index d9ed0da9b2..98d932f73d 100644 --- a/src/lib-storage/index/index-transaction.c +++ b/src/lib-storage/index/index-transaction.c @@ -8,6 +8,7 @@ void index_transaction_init(struct index_transaction_context *t, struct index_mailbox *ibox) { + t->super = t->trans->v; t->mailbox_ctx.box = &ibox->box; t->ibox = ibox; diff --git a/src/lib-storage/index/maildir/maildir-transaction.c b/src/lib-storage/index/maildir/maildir-transaction.c index 25930b87e9..ab13b94dc5 100644 --- a/src/lib-storage/index/maildir/maildir-transaction.c +++ b/src/lib-storage/index/maildir/maildir-transaction.c @@ -62,13 +62,11 @@ static void maildir_transaction_created(struct mail_index_transaction *t) mt = i_new(struct maildir_transaction_context, 1); mt->ictx.trans = t; - mt->ictx.super = t->v; + index_transaction_init(&mt->ictx, &mbox->ibox); t->v.commit = maildir_transaction_commit; t->v.rollback = maildir_transaction_rollback; MODULE_CONTEXT_SET(t, mail_storage_mail_index_module, mt); - - index_transaction_init(&mt->ictx, &mbox->ibox); } if (next_hook_mail_index_transaction_created != NULL) next_hook_mail_index_transaction_created(t); diff --git a/src/lib-storage/index/mbox/mbox-transaction.c b/src/lib-storage/index/mbox/mbox-transaction.c index c5f0c1c027..572fdb484a 100644 --- a/src/lib-storage/index/mbox/mbox-transaction.c +++ b/src/lib-storage/index/mbox/mbox-transaction.c @@ -86,13 +86,11 @@ static void mbox_transaction_created(struct mail_index_transaction *t) mt = i_new(struct mbox_transaction_context, 1); mt->ictx.trans = t; - mt->ictx.super = t->v; + index_transaction_init(&mt->ictx, &mbox->ibox); t->v.commit = mbox_transaction_commit; t->v.rollback = mbox_transaction_rollback; MODULE_CONTEXT_SET(t, mail_storage_mail_index_module, mt); - - index_transaction_init(&mt->ictx, &mbox->ibox); } if (next_hook_mail_index_transaction_created != NULL) diff --git a/src/lib-storage/index/raw/raw-transaction.c b/src/lib-storage/index/raw/raw-transaction.c index 5ae42c0ac5..12bc065d3a 100644 --- a/src/lib-storage/index/raw/raw-transaction.c +++ b/src/lib-storage/index/raw/raw-transaction.c @@ -41,12 +41,11 @@ static void raw_transaction_created(struct mail_index_transaction *t) mt = i_new(struct raw_transaction_context, 1); mt->ictx.trans = t; - mt->ictx.super = t->v; + index_transaction_init(&mt->ictx, &raw->ibox); t->v.commit = raw_transaction_commit; t->v.rollback = raw_transaction_rollback; MODULE_CONTEXT_SET(t, mail_storage_mail_index_module, mt); - index_transaction_init(&mt->ictx, &raw->ibox); } if (next_hook_mail_index_transaction_created != NULL)