dovecot-2.2: lib-index: Changed mail_index_set_fsync_mode() to u...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Sep 15 19:56:59 EEST 2012
details: http://hg.dovecot.org/dovecot-2.2/rev/0efc12f3eb2a
changeset: 15063:0efc12f3eb2a
user: Timo Sirainen <tss at iki.fi>
date: Sat Sep 15 19:54:21 2012 +0300
description:
lib-index: Changed mail_index_set_fsync_mode() to use a separate enum for the mask.
diffstat:
src/lib-index/mail-index-private.h | 2 +-
src/lib-index/mail-index-transaction-export.c | 16 ++++++++--------
src/lib-index/mail-index.c | 2 +-
src/lib-index/mail-index.h | 9 ++++++++-
src/lib-storage/index/cydir/cydir-storage.c | 4 ++--
src/lib-storage/index/dbox-common/dbox-storage.c | 4 ++--
6 files changed, 22 insertions(+), 15 deletions(-)
diffs (148 lines):
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-index/mail-index-private.h
--- a/src/lib-index/mail-index-private.h Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-index/mail-index-private.h Sat Sep 15 19:54:21 2012 +0300
@@ -169,7 +169,7 @@
unsigned int open_count;
enum mail_index_open_flags flags;
enum fsync_mode fsync_mode;
- enum mail_index_sync_type fsync_mask;
+ enum mail_index_fsync_mask fsync_mask;
mode_t mode;
gid_t gid;
char *gid_origin;
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-index/mail-index-transaction-export.c
--- a/src/lib-index/mail-index-transaction-export.c Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-index/mail-index-transaction-export.c Sat Sep 15 19:54:21 2012 +0300
@@ -333,13 +333,13 @@
log_append_buffer(ctx, tmp_buf, MAIL_TRANSACTION_KEYWORD_UPDATE);
}
-static enum mail_index_sync_type
+static enum mail_index_fsync_mask
log_append_keyword_updates(struct mail_index_export_context *ctx)
{
const struct mail_index_transaction_keyword_update *updates;
const char *const *keywords;
buffer_t *tmp_buf;
- enum mail_index_sync_type change_mask = 0;
+ enum mail_index_fsync_mask change_mask = 0;
unsigned int i, count, keywords_count;
tmp_buf = buffer_create_dynamic(pool_datastack_create(), 64);
@@ -352,14 +352,14 @@
for (i = 0; i < count; i++) {
if (array_is_created(&updates[i].add_seq) &&
array_count(&updates[i].add_seq) > 0) {
- change_mask |= MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD;
+ change_mask |= MAIL_INDEX_FSYNC_MASK_KEYWORDS;
log_append_keyword_update(ctx, tmp_buf,
MODIFY_ADD, keywords[i],
updates[i].add_seq.arr.buffer);
}
if (array_is_created(&updates[i].remove_seq) &&
array_count(&updates[i].remove_seq) > 0) {
- change_mask |= MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE;
+ change_mask |= MAIL_INDEX_FSYNC_MASK_KEYWORDS;
log_append_keyword_update(ctx, tmp_buf,
MODIFY_REMOVE, keywords[i],
updates[i].remove_seq.arr.buffer);
@@ -372,7 +372,7 @@
struct mail_transaction_log_append_ctx *append_ctx)
{
static uint8_t null4[4] = { 0, 0, 0, 0 };
- enum mail_index_sync_type change_mask = 0;
+ enum mail_index_fsync_mask change_mask = 0;
struct mail_index_export_context ctx;
memset(&ctx, 0, sizeof(ctx));
@@ -394,13 +394,13 @@
MAIL_TRANSACTION_HEADER_UPDATE);
}
if (array_is_created(&t->appends)) {
- change_mask |= MAIL_INDEX_SYNC_TYPE_APPEND;
+ change_mask |= MAIL_INDEX_FSYNC_MASK_APPENDS;
log_append_buffer(&ctx, t->appends.arr.buffer,
MAIL_TRANSACTION_APPEND);
}
if (array_is_created(&t->updates)) {
- change_mask |= MAIL_INDEX_SYNC_TYPE_FLAGS;
+ change_mask |= MAIL_INDEX_FSYNC_MASK_FLAGS;
log_append_flag_updates(&ctx, t);
}
@@ -425,7 +425,7 @@
/* non-external expunges are only requests, ignore them when
checking fsync_mask */
if ((t->flags & MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL) != 0)
- change_mask |= MAIL_INDEX_SYNC_TYPE_EXPUNGE;
+ change_mask |= MAIL_INDEX_FSYNC_MASK_EXPUNGES;
log_append_buffer(&ctx, t->expunges.arr.buffer,
MAIL_TRANSACTION_EXPUNGE_GUID);
}
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-index/mail-index.c
--- a/src/lib-index/mail-index.c Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-index/mail-index.c Sat Sep 15 19:54:21 2012 +0300
@@ -86,7 +86,7 @@
void mail_index_set_fsync_mode(struct mail_index *index,
enum fsync_mode mode,
- enum mail_index_sync_type mask)
+ enum mail_index_fsync_mask mask)
{
index->fsync_mode = mode;
index->fsync_mask = mask;
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-index/mail-index.h
--- a/src/lib-index/mail-index.h Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-index/mail-index.h Sat Sep 15 19:54:21 2012 +0300
@@ -136,6 +136,13 @@
MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE = 0x10
};
+enum mail_index_fsync_mask {
+ MAIL_INDEX_FSYNC_MASK_APPENDS = 0x01,
+ MAIL_INDEX_FSYNC_MASK_EXPUNGES = 0x02,
+ MAIL_INDEX_FSYNC_MASK_FLAGS = 0x04,
+ MAIL_INDEX_FSYNC_MASK_KEYWORDS = 0x08
+};
+
enum mail_index_sync_flags {
/* Resync all dirty messages' flags. */
MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY = 0x01,
@@ -214,7 +221,7 @@
/* Specify how often to do fsyncs. If mode is FSYNC_MODE_OPTIMIZED, the mask
can be used to specify which transaction types to fsync. */
void mail_index_set_fsync_mode(struct mail_index *index, enum fsync_mode mode,
- enum mail_index_sync_type mask);
+ enum mail_index_fsync_mask mask);
void mail_index_set_permissions(struct mail_index *index,
mode_t mode, gid_t gid, const char *gid_origin);
/* Set locking method and maximum time to wait for a lock (-1U = default). */
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-storage/index/cydir/cydir-storage.c
--- a/src/lib-storage/index/cydir/cydir-storage.c Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-storage/index/cydir/cydir-storage.c Sat Sep 15 19:54:21 2012 +0300
@@ -83,8 +83,8 @@
return -1;
mail_index_set_fsync_mode(box->index,
box->storage->set->parsed_fsync_mode,
- MAIL_INDEX_SYNC_TYPE_APPEND |
- MAIL_INDEX_SYNC_TYPE_EXPUNGE);
+ MAIL_INDEX_FSYNC_MASK_APPENDS |
+ MAIL_INDEX_FSYNC_MASK_EXPUNGES);
return 0;
}
diff -r 9935621836c8 -r 0efc12f3eb2a src/lib-storage/index/dbox-common/dbox-storage.c
--- a/src/lib-storage/index/dbox-common/dbox-storage.c Sat Sep 15 19:12:04 2012 +0300
+++ b/src/lib-storage/index/dbox-common/dbox-storage.c Sat Sep 15 19:54:21 2012 +0300
@@ -190,8 +190,8 @@
return -1;
mail_index_set_fsync_mode(box->index,
box->storage->set->parsed_fsync_mode,
- MAIL_INDEX_SYNC_TYPE_APPEND |
- MAIL_INDEX_SYNC_TYPE_EXPUNGE);
+ MAIL_INDEX_FSYNC_MASK_APPENDS |
+ MAIL_INDEX_FSYNC_MASK_EXPUNGES);
return 0;
}
More information about the dovecot-cvs
mailing list