if (ret < 0)
mail_index_transaction_rollback(&trans);
- else
+ else {
+ mail_index_unset_fscked(trans);
ret = mail_index_transaction_commit(&trans);
+ }
mail_index_view_close(&view);
mbox->corrupted_rebuild_count = 0;
return ret;
struct sdbox_sync_context **ctx_r)
{
struct mail_storage *storage = mbox->box.storage;
+ const struct mail_index_header *hdr =
+ mail_index_get_header(mbox->box.view);
struct sdbox_sync_context *ctx;
enum mail_index_sync_flags sync_flags;
unsigned int i;
force_rebuild = (flags & SDBOX_SYNC_FLAG_FORCE_REBUILD) != 0;
rebuild = force_rebuild ||
+ (hdr->flags & MAIL_INDEX_HDR_FLAG_FSCKD) != 0 ||
mbox->corrupted_rebuild_count != 0 ||
sdbox_refresh_header(mbox, TRUE, FALSE) < 0;