log_append_buffer(ctx, tmp_buf, MAIL_TRANSACTION_KEYWORD_UPDATE);
}
-static enum mail_index_fsync_mask
+static bool
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_fsync_mask change_mask = 0;
unsigned int i, count, keywords_count;
+ bool changed = FALSE;
tmp_buf = t_buffer_create(64);
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_FSYNC_MASK_KEYWORDS;
+ changed = TRUE;
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_FSYNC_MASK_KEYWORDS;
+ changed = TRUE;
log_append_keyword_update(ctx, tmp_buf,
MODIFY_REMOVE, keywords[i],
updates[i].remove_seq.arr.buffer);
}
}
- return change_mask;
+ return changed;
}
void mail_index_transaction_export(struct mail_index_transaction *t,
MAIL_TRANSACTION_EXT_ATOMIC_INC);
}
- if (array_is_created(&t->keyword_updates))
- change_mask |= log_append_keyword_updates(&ctx);
+ if (array_is_created(&t->keyword_updates)) {
+ if (log_append_keyword_updates(&ctx))
+ change_mask |= MAIL_INDEX_FSYNC_MASK_KEYWORDS;
+ }
/* keep modseq updates almost last */
if (array_is_created(&t->modseq_updates)) {
log_append_buffer(&ctx, t->modseq_updates.arr.buffer,