dovecot-2.0: index-storage: Code cleanup.

dovecot at dovecot.org dovecot at dovecot.org
Fri Jul 31 02:30:23 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/fa5e27725f6b
changeset: 9701:fa5e27725f6b
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 30 19:30:15 2009 -0400
description:
index-storage: Code cleanup.

diffstat:

14 files changed, 31 insertions(+), 28 deletions(-)
src/lib-storage/index/cydir/cydir-sync.c           |    2 +-
src/lib-storage/index/dbox/dbox-sync.c             |    2 +-
src/lib-storage/index/index-storage.c              |    2 --
src/lib-storage/index/index-storage.h              |    2 --
src/lib-storage/index/index-sync.c                 |    3 ++-
src/lib-storage/index/maildir/maildir-save.c       |    2 +-
src/lib-storage/index/maildir/maildir-sync-index.c |    3 ++-
src/lib-storage/index/maildir/maildir-sync.c       |   15 ++++++++-------
src/lib-storage/index/mbox/mbox-file.c             |    3 ++-
src/lib-storage/index/mbox/mbox-sync-private.h     |    1 +
src/lib-storage/index/mbox/mbox-sync-update.c      |    4 ++--
src/lib-storage/index/mbox/mbox-sync.c             |   16 +++++++++-------
src/lib-storage/index/raw/raw-sync.c               |    2 +-
src/plugins/virtual/virtual-sync.c                 |    2 +-

diffs (288 lines):

diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/cydir/cydir-sync.c
--- a/src/lib-storage/index/cydir/cydir-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/cydir/cydir-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -117,7 +117,7 @@ int cydir_sync_begin(struct cydir_mailbo
 	ctx->mbox = mbox;
 
 	sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if (!force)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/dbox/dbox-sync.c
--- a/src/lib-storage/index/dbox/dbox-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/dbox/dbox-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -245,7 +245,7 @@ int dbox_sync_begin(struct dbox_mailbox 
 	ctx->mbox = mbox;
 	ctx->flags = flags;
 
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if (!rebuild && (flags & DBOX_SYNC_FLAG_FORCE) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/index-storage.c
--- a/src/lib-storage/index/index-storage.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-storage.c	Thu Jul 30 19:30:15 2009 -0400
@@ -483,8 +483,6 @@ void index_storage_mailbox_alloc(struct 
 
 	ibox->index_flags = MAIL_INDEX_OPEN_FLAG_CREATE |
 		mail_storage_settings_to_index_flags(box->storage->set);
-	ibox->keep_recent = (flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
-	ibox->keep_locked = (flags & MAILBOX_FLAG_KEEP_LOCKED) != 0;
 
 	ibox->next_lock_notify = time(NULL) + LOCK_NOTIFY_INTERVAL;
 	ibox->commit_log_file_seq = 0;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/index-storage.h
--- a/src/lib-storage/index/index-storage.h	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-storage.h	Thu Jul 30 19:30:15 2009 -0400
@@ -50,8 +50,6 @@ struct index_mailbox {
 
 	/* we've discovered there aren't enough permissions to modify mailbox */
 	unsigned int backend_readonly:1;
-	unsigned int keep_recent:1;
-	unsigned int keep_locked:1;
 	unsigned int sent_diskspace_warning:1;
 	unsigned int sent_readonly_flags_warning:1;
 	unsigned int notify_pending:1;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/index-sync.c
--- a/src/lib-storage/index/index-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -326,7 +326,8 @@ int index_mailbox_sync_deinit(struct mai
 	}
 	index_mailbox_expunge_unseen_recent(ctx);
 
-	if (ibox->keep_recent && ibox->box.opened) {
+	if ((ibox->box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
+	    ibox->box.opened) {
 		/* mailbox syncing didn't necessarily update our recent state */
 		hdr = mail_index_get_header(ibox->view);
 		if (hdr->first_recent_uid > ibox->recent_flags_prev_uid) {
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/maildir/maildir-save.c
--- a/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 30 19:30:15 2009 -0400
@@ -678,7 +678,7 @@ maildir_save_sync_index(struct maildir_s
 			index_mailbox_set_recent_uid(&mbox->ibox, uid);
 	}
 
-	if (!mbox->ibox.keep_recent) {
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 		/* maildir_sync_index() dropped recent flags from
 		   existing messages. we'll still need to drop recent
 		   flags from these newly added messages. */
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/maildir/maildir-sync-index.c
--- a/src/lib-storage/index/maildir/maildir-sync-index.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-sync-index.c	Thu Jul 30 19:30:15 2009 -0400
@@ -225,7 +225,8 @@ int maildir_sync_index_begin(struct mail
 
 	sync_flags = 0;
 	/* don't drop recent messages if we're saving messages */
-	if (!mbox->ibox.keep_recent && maildir_sync_ctx != NULL)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+	    maildir_sync_ctx != NULL)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	if (mail_index_sync_begin(mbox->ibox.index, &sync_ctx, &view, &trans,
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/maildir/maildir-sync.c
--- a/src/lib-storage/index/maildir/maildir-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -420,7 +420,8 @@ maildir_scan_dir(struct maildir_sync_con
 	dest = t_str_new(1024);
 
 	move_new = new_dir && !mailbox_is_readonly(&ctx->mbox->ibox.box) &&
-		!ctx->mbox->ibox.keep_recent && ctx->locked;
+		(ctx->mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+		ctx->locked;
 
 	errno = 0;
 	for (; (dp = readdir(dirp)) != NULL; errno = 0) {
@@ -669,11 +670,11 @@ static int maildir_sync_get_changes(stru
 static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
 				    bool *new_changed_r, bool *cur_changed_r)
 {
+	struct maildir_mailbox *mbox = ctx->mbox;
 	enum mail_index_sync_flags flags = 0;
 	bool undirty = (ctx->flags & MAILBOX_SYNC_FLAG_FULL_READ) != 0;
 
-	if (maildir_sync_quick_check(ctx->mbox, undirty,
-				     ctx->new_dir, ctx->cur_dir,
+	if (maildir_sync_quick_check(mbox, undirty, ctx->new_dir, ctx->cur_dir,
 				     new_changed_r, cur_changed_r) < 0)
 		return -1;
 
@@ -681,7 +682,7 @@ static int maildir_sync_get_changes(stru
 		return 1;
 
 	if (have_recent_messages(ctx)) {
-		if (!ctx->mbox->ibox.keep_recent) {
+		if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 			*new_changed_r = TRUE;
 			return 1;
 		} else if (*new_changed_r) {
@@ -694,10 +695,10 @@ static int maildir_sync_get_changes(stru
 		}
 	}
 
-	if (!ctx->mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
-	return mail_index_sync_have_any(ctx->mbox->ibox.index, flags) ? 1 : 0;
+	return mail_index_sync_have_any(mbox->ibox.index, flags) ? 1 : 0;
 }
 
 static int maildir_sync_context(struct maildir_sync_context *ctx, bool forced,
@@ -934,7 +935,7 @@ maildir_storage_sync_init(struct mailbox
 		} T_END;
 
 		i_assert(!maildir_uidlist_is_locked(mbox->uidlist) ||
-			 mbox->ibox.keep_locked);
+			 (box->flags & MAILBOX_FLAG_KEEP_LOCKED) != 0);
 
 		if (lost_files) {
 			/* lost some files from new/, see if thery're in cur/ */
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/mbox/mbox-file.c
--- a/src/lib-storage/index/mbox/mbox-file.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-file.c	Thu Jul 30 19:30:15 2009 -0400
@@ -95,7 +95,8 @@ static void mbox_file_fix_atime(struct m
 	struct utimbuf buf;
 	struct stat st;
 
-	if (mbox->ibox.recent_flags_count > 0 && mbox->ibox.keep_recent &&
+	if (mbox->ibox.recent_flags_count > 0 &&
+	    (mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
 	    mbox->mbox_fd != -1 && !mbox->ibox.backend_readonly) {
 		/* we've seen recent messages which we want to keep recent.
 		   keep file's atime lower than mtime so \Marked status
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/mbox/mbox-sync-private.h
--- a/src/lib-storage/index/mbox/mbox-sync-private.h	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync-private.h	Thu Jul 30 19:30:15 2009 -0400
@@ -138,6 +138,7 @@ struct mbox_sync_context {
 	unsigned int first_mail_crlf_expunged:1;
 
 	/* global flags: */
+	unsigned int keep_recent:1;
 	unsigned int delay_writes:1;
 	unsigned int renumber_uids:1;
 	unsigned int moved_offsets:1;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/mbox/mbox-sync-update.c
--- a/src/lib-storage/index/mbox/mbox-sync-update.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync-update.c	Thu Jul 30 19:30:15 2009 -0400
@@ -382,7 +382,7 @@ static void mbox_sync_update_header_real
 {
 	i_assert(ctx->mail.uid != 0 || ctx->mail.pseudo);
 
-	if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+	if (!ctx->sync_ctx->keep_recent)
 		ctx->mail.flags &= ~MAIL_RECENT;
 
 	mbox_sync_update_status(ctx);
@@ -412,7 +412,7 @@ mbox_sync_update_header_from_real(struct
 	    (ctx->mail.flags & MAIL_RECENT) != 0) {
 		ctx->mail.flags = (ctx->mail.flags & ~STATUS_FLAGS_MASK) |
 			(mail->flags & STATUS_FLAGS_MASK);
-		if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+		if (!ctx->sync_ctx->keep_recent)
                         ctx->mail.flags &= ~MAIL_RECENT;
 		mbox_sync_update_status(ctx);
 	}
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/mbox/mbox-sync.c
--- a/src/lib-storage/index/mbox/mbox-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -157,7 +157,7 @@ mbox_sync_read_next_mail(struct mbox_syn
 
 	if ((mail_ctx->mail.flags & MAIL_RECENT) != 0 &&
 	    !mail_ctx->mail.pseudo) {
-		if (!sync_ctx->mbox->ibox.keep_recent) {
+		if (!sync_ctx->keep_recent) {
 			/* need to add 'O' flag to Status-header */
 			mail_ctx->need_rewrite = TRUE;
 		}
@@ -913,7 +913,7 @@ static int mbox_sync_partial_seek_next(s
 		return 1;
 
 	if (sync_ctx->hdr->first_recent_uid <= next_uid &&
-	    !sync_ctx->mbox->ibox.keep_recent) {
+	    !sync_ctx->keep_recent) {
 		/* we'll need to rewrite Status: O headers */
 		return 1;
 	}
@@ -922,7 +922,7 @@ static int mbox_sync_partial_seek_next(s
 
 	if (sync_ctx->hdr->first_recent_uid < sync_ctx->hdr->next_uid &&
 	    (uid > sync_ctx->hdr->first_recent_uid || uid == 0) &&
-	    !sync_ctx->mbox->ibox.keep_recent) {
+	    !sync_ctx->keep_recent) {
 		/* we'll need to rewrite Status: O headers */
 		uid = sync_ctx->hdr->first_recent_uid;
 	}
@@ -1469,7 +1469,7 @@ static int mbox_sync_update_index_header
 	}
 	mail_index_view_close(&view);
 
-	first_recent_uid = !sync_ctx->mbox->ibox.keep_recent ?
+	first_recent_uid = !sync_ctx->keep_recent ?
 		sync_ctx->next_uid : sync_ctx->last_nonrecent_uid + 1;
 	if (sync_ctx->hdr->first_recent_uid < first_recent_uid) {
 		mail_index_update_header(sync_ctx->t,
@@ -1771,7 +1771,7 @@ again:
 	}
 
 	sync_flags = 0;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if ((flags & MBOX_SYNC_REWRITE) != 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
@@ -1792,7 +1792,7 @@ again:
 		return ret;
 	}
 
-	if (!mbox->ibox.keep_recent) {
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 		/* see if we need to drop recent flags */
 		sync_ctx.hdr = mail_index_get_header(sync_view);
 		if (sync_ctx.hdr->first_recent_uid < sync_ctx.hdr->next_uid)
@@ -1813,6 +1813,8 @@ again:
 
 	memset(&sync_ctx, 0, sizeof(sync_ctx));
 	sync_ctx.mbox = mbox;
+	sync_ctx.keep_recent =
+		(mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
 
 	sync_ctx.hdr = mail_index_get_header(sync_view);
 	sync_ctx.from_line = str_new(default_pool, 256);
@@ -1888,7 +1890,7 @@ again:
 	sync_ctx.t = NULL;
 	sync_ctx.index_sync_ctx = NULL;
 
-	if (ret == 0 && mbox->mbox_fd != -1 && mbox->ibox.keep_recent &&
+	if (ret == 0 && mbox->mbox_fd != -1 && sync_ctx.keep_recent &&
 	    !sync_ctx.mbox->ibox.backend_readonly) {
 		/* try to set atime back to its original value */
 		struct utimbuf buf;
diff -r ac98c24da6ee -r fa5e27725f6b src/lib-storage/index/raw/raw-sync.c
--- a/src/lib-storage/index/raw/raw-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/raw/raw-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -18,7 +18,7 @@ static int raw_sync(struct raw_mailbox *
 
 	sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
 		MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	ret = mail_index_sync_begin(mbox->ibox.index, &index_sync_ctx,
diff -r ac98c24da6ee -r fa5e27725f6b src/plugins/virtual/virtual-sync.c
--- a/src/plugins/virtual/virtual-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/plugins/virtual/virtual-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -1448,7 +1448,7 @@ static int virtual_sync(struct virtual_m
 
 	index_sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
 		MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		index_sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	ret = mail_index_sync_begin(ctx->index, &ctx->index_sync_ctx,


More information about the dovecot-cvs mailing list