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