dovecot: Renamed mail_index_sync_begin() to mail_index_sync_begi...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Sep 1 00:36:06 EEST 2007
details: http://hg.dovecot.org/dovecot/rev/aa4a78b3c626
changeset: 6332:aa4a78b3c626
user: Timo Sirainen <tss at iki.fi>
date: Wed Aug 29 22:58:27 2007 +0300
description:
Renamed mail_index_sync_begin() to mail_index_sync_begin_to() and added a
new mail_index_sync_begin() without seq/offset parameters.
diffstat:
9 files changed, 59 insertions(+), 48 deletions(-)
src/lib-index/mail-index-sync.c | 24 +++++++++++++++----
src/lib-index/mail-index.h | 19 +++++++++------
src/lib-index/mailbox-list-index-sync.c | 2 -
src/lib-storage/index/cydir/cydir-sync.c | 13 ++++------
src/lib-storage/index/dbox/dbox-save.c | 3 --
src/lib-storage/index/dbox/dbox-sync.c | 13 ++++------
src/lib-storage/index/maildir/maildir-sync-index.c | 2 -
src/lib-storage/index/mbox/mbox-sync.c | 25 +++++++++-----------
src/lib-storage/list/index-mailbox-list-sync.c | 6 ++--
diffs (243 lines):
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-index/mail-index-sync.c
--- a/src/lib-index/mail-index-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-index/mail-index-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -296,11 +296,25 @@ mail_index_sync_set_log_view(struct mail
}
int mail_index_sync_begin(struct mail_index *index,
- struct mail_index_sync_ctx **ctx_r,
+ struct mail_index_sync_ctx **ctx_r,
struct mail_index_view **view_r,
struct mail_index_transaction **trans_r,
- uint32_t log_file_seq, uoff_t log_file_offset,
enum mail_index_sync_flags flags)
+{
+ int ret;
+
+ ret = mail_index_sync_begin_to(index, ctx_r, view_r, trans_r,
+ (uint32_t)-1, (uoff_t)-1, flags);
+ i_assert(ret != 0);
+ return ret <= 0 ? -1 : 0;
+}
+
+int mail_index_sync_begin_to(struct mail_index *index,
+ struct mail_index_sync_ctx **ctx_r,
+ struct mail_index_view **view_r,
+ struct mail_index_transaction **trans_r,
+ uint32_t log_file_seq, uoff_t log_file_offset,
+ enum mail_index_sync_flags flags)
{
const struct mail_index_header *hdr;
struct mail_index_sync_ctx *ctx;
@@ -376,9 +390,9 @@ int mail_index_sync_begin(struct mail_in
mail_transaction_log_sync_unlock(index->log);
return -1;
}
- return mail_index_sync_begin(index, ctx_r, view_r, trans_r,
- log_file_seq, log_file_offset,
- flags);
+ return mail_index_sync_begin_to(index, ctx_r, view_r, trans_r,
+ log_file_seq, log_file_offset,
+ flags);
}
/* we need to have all the transactions sorted to optimize
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-index/mail-index.h
--- a/src/lib-index/mail-index.h Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-index/mail-index.h Wed Aug 29 22:58:27 2007 +0300
@@ -224,12 +224,7 @@ struct mail_index_view *
struct mail_index_view *
mail_index_transaction_open_updated_view(struct mail_index_transaction *t);
-/* Begin synchronizing mailbox with index file. Returns 1 if ok, -1 if error.
-
- If log_file_seq is not (uint32_t)-1 and index is already synchronized up
- to the given log_file_offset, the synchronization isn't started and this
- function returns 0. This should be done when you wish to sync your committed
- transaction instead of doing a full mailbox synchronization.
+/* Begin synchronizing mailbox with index file. Returns 0 if ok, -1 if error.
mail_index_sync_next() returns all changes from previously committed
transactions which haven't yet been committed to the actual mailbox.
@@ -255,8 +250,18 @@ int mail_index_sync_begin(struct mail_in
struct mail_index_sync_ctx **ctx_r,
struct mail_index_view **view_r,
struct mail_index_transaction **trans_r,
- uint32_t log_file_seq, uoff_t log_file_offset,
enum mail_index_sync_flags flags);
+/* Like mail_index_sync_begin(), but returns 1 if OK and if index is already
+ synchronized up to the given log_file_seq+offset, the synchronization isn't
+ started and this function returns 0. This should be done when you wish to
+ sync your committed transaction instead of doing a full mailbox
+ synchronization. */
+int mail_index_sync_begin_to(struct mail_index *index,
+ struct mail_index_sync_ctx **ctx_r,
+ struct mail_index_view **view_r,
+ struct mail_index_transaction **trans_r,
+ uint32_t log_file_seq, uoff_t log_file_offset,
+ enum mail_index_sync_flags flags);
/* Returns -1 if error, 0 if sync is finished, 1 if record was filled. */
bool mail_index_sync_next(struct mail_index_sync_ctx *ctx,
struct mail_index_sync_rec *sync_rec);
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-index/mailbox-list-index-sync.c
--- a/src/lib-index/mailbox-list-index-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-index/mailbox-list-index-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -360,7 +360,7 @@ static int sync_mail_sync_init(struct ma
struct mail_index_sync_rec sync_rec;
if (mail_index_sync_begin(ctx->index->mail_index, &ctx->mail_sync_ctx,
- &ctx->mail_view, &ctx->trans, (uint32_t)-1, 0,
+ &ctx->mail_view, &ctx->trans,
MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES) < 0)
return -1;
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/index/cydir/cydir-sync.c
--- a/src/lib-storage/index/cydir/cydir-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/index/cydir/cydir-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -114,7 +114,6 @@ int cydir_sync_begin(struct cydir_mailbo
{
struct cydir_sync_context *ctx;
enum mail_index_sync_flags sync_flags;
- int ret;
ctx = i_new(struct cydir_sync_context, 1);
ctx->mbox = mbox;
@@ -123,14 +122,12 @@ int cydir_sync_begin(struct cydir_mailbo
if (!mbox->ibox.keep_recent)
sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
- ret = mail_index_sync_begin(mbox->ibox.index, &ctx->index_sync_ctx,
- &ctx->sync_view, &ctx->trans,
- (uint32_t)-1, (uoff_t)-1, sync_flags);
- if (ret <= 0) {
- if (ret < 0)
- mail_storage_set_index_error(&mbox->ibox);
+ if (mail_index_sync_begin(mbox->ibox.index, &ctx->index_sync_ctx,
+ &ctx->sync_view, &ctx->trans,
+ sync_flags) < 0) {
+ mail_storage_set_index_error(&mbox->ibox);
i_free(ctx);
- return ret;
+ return -1;
}
cydir_sync_index(ctx);
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/index/dbox/dbox-save.c
--- a/src/lib-storage/index/dbox/dbox-save.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/index/dbox/dbox-save.c Wed Aug 29 22:58:27 2007 +0300
@@ -371,8 +371,7 @@ int dbox_transaction_save_commit_pre(str
/* lock index lock before dropping uidlist lock in _append_commit() */
if (mail_index_sync_begin(ctx->mbox->ibox.index, &ctx->index_sync_ctx,
- &view, &ctx->trans, (uint32_t)-1, (uoff_t)-1,
- 0) < 0) {
+ &view, &ctx->trans, 0) < 0) {
ctx->failed = TRUE;
dbox_transaction_save_rollback(ctx);
return -1;
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/index/dbox/dbox-sync.c
--- a/src/lib-storage/index/dbox/dbox-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/index/dbox/dbox-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -455,7 +455,6 @@ static int dbox_sync_init(struct dbox_ma
const struct mail_index_header *hdr;
enum mail_index_sync_flags sync_flags;
time_t mtime;
- int ret;
memset(ctx, 0, sizeof(*ctx));
ctx->mbox = mbox;
@@ -468,14 +467,12 @@ static int dbox_sync_init(struct dbox_ma
sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
if (!mbox->ibox.keep_recent)
sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
- ret = mail_index_sync_begin(mbox->ibox.index, &ctx->index_sync_ctx,
- &ctx->sync_view, &ctx->trans,
- (uint32_t)-1, (uoff_t)-1, sync_flags);
- if (ret <= 0) {
- if (ret < 0)
- mail_storage_set_index_error(&mbox->ibox);
+ if (mail_index_sync_begin(mbox->ibox.index, &ctx->index_sync_ctx,
+ &ctx->sync_view, &ctx->trans,
+ sync_flags) < 0) {
+ mail_storage_set_index_error(&mbox->ibox);
dbox_uidlist_sync_rollback(ctx->uidlist_sync_ctx);
- return ret;
+ return -1;
}
hdr = mail_index_get_header(ctx->sync_view);
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/index/maildir/maildir-sync-index.c
--- a/src/lib-storage/index/maildir/maildir-sync-index.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/index/maildir/maildir-sync-index.c Wed Aug 29 22:58:27 2007 +0300
@@ -162,7 +162,7 @@ int maildir_sync_index_begin(struct mail
sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
if (mail_index_sync_begin(mbox->ibox.index, &sync_ctx, &view, &trans,
- (uint32_t)-1, (uoff_t)-1, sync_flags) <= 0) {
+ sync_flags) < 0) {
mail_storage_set_index_error(&mbox->ibox);
return -1;
}
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/index/mbox/mbox-sync.c
--- a/src/lib-storage/index/mbox/mbox-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/index/mbox/mbox-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -1539,8 +1539,6 @@ static int mbox_sync_int(struct mbox_mai
struct mail_index_transaction *trans;
struct mbox_sync_context sync_ctx;
enum mail_index_sync_flags sync_flags;
- uint32_t seq;
- uoff_t offset;
unsigned int lock_id = 0;
int ret, changed;
bool delay_writes;
@@ -1605,22 +1603,23 @@ __again:
}
}
- if ((flags & MBOX_SYNC_LAST_COMMIT) != 0) {
- seq = mbox->ibox.commit_log_file_seq;
- offset = mbox->ibox.commit_log_file_offset;
- } else {
- seq = (uint32_t)-1;
- offset = (uoff_t)-1;
- }
-
sync_flags = 0;
if (!mbox->ibox.keep_recent)
sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
if ((flags & MBOX_SYNC_REWRITE) != 0)
sync_flags |= MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
- ret = mail_index_sync_begin(mbox->ibox.index, &index_sync_ctx,
- &sync_view, &trans, seq, offset,
- sync_flags);
+
+ if ((flags & MBOX_SYNC_LAST_COMMIT) != 0) {
+ ret = mail_index_sync_begin_to(mbox->ibox.index,
+ &index_sync_ctx, &sync_view, &trans,
+ mbox->ibox.commit_log_file_seq,
+ mbox->ibox.commit_log_file_offset, sync_flags);
+ } else {
+ ret = mail_index_sync_begin(mbox->ibox.index, &index_sync_ctx,
+ &sync_view, &trans,
+ sync_flags) < 0 ? -1 : 1;
+ }
+
if (ret <= 0) {
if (ret < 0)
mail_storage_set_index_error(&mbox->ibox);
diff -r 081fd0acddd2 -r aa4a78b3c626 src/lib-storage/list/index-mailbox-list-sync.c
--- a/src/lib-storage/list/index-mailbox-list-sync.c Mon Aug 27 19:34:17 2007 +0300
+++ b/src/lib-storage/list/index-mailbox-list-sync.c Wed Aug 29 22:58:27 2007 +0300
@@ -67,9 +67,9 @@ static int index_list_update_mail_index(
if (ibox->log_seq == 0)
return 0;
- ret = mail_index_sync_begin(ilist->mail_index,
- &mail_sync_ctx, &view, &trans,
- ibox->log_seq, ibox->log_offset, 0);
+ ret = mail_index_sync_begin_to(ilist->mail_index,
+ &mail_sync_ctx, &view, &trans,
+ ibox->log_seq, ibox->log_offset, 0);
if (ret <= 0)
return ret;
More information about the dovecot-cvs
mailing list