Mercurial > dovecot > core-2.2
changeset 21265:d082c99cbc65
sdbox: Rebuild index after it's been fsck'd
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 24 Nov 2016 18:12:00 +0200 |
parents | 8f33680c6722 |
children | b861c0860dd2 |
files | src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c src/lib-storage/index/dbox-single/sdbox-sync.c |
diffstat | 2 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c Mon Nov 28 03:26:01 2016 +0100 +++ b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c Thu Nov 24 18:12:00 2016 +0200 @@ -216,8 +216,10 @@ 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;
--- a/src/lib-storage/index/dbox-single/sdbox-sync.c Mon Nov 28 03:26:01 2016 +0100 +++ b/src/lib-storage/index/dbox-single/sdbox-sync.c Thu Nov 24 18:12:00 2016 +0200 @@ -191,6 +191,8 @@ 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; @@ -199,6 +201,7 @@ 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;