changeset 22474:eb01d3b9c90b

mdbox: Use mail_storage_set_index_error() instead of poorly duplicating it
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 21 Aug 2017 15:44:41 +0300
parents 18273d30c64d
children bbf787982cff
files src/lib-storage/index/dbox-multi/mdbox-map.c src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c
diffstat 2 files changed, 19 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-multi/mdbox-map.c	Mon Aug 21 15:34:40 2017 +0300
+++ b/src/lib-storage/index/dbox-multi/mdbox-map.c	Mon Aug 21 15:44:41 2017 +0300
@@ -169,8 +169,7 @@
 		ret = mail_index_open(map->index, open_flags);
 	}
 	if (ret < 0) {
-		mail_storage_set_internal_error(MAP_STORAGE(map));
-		mail_index_reset_error(map->index);
+		mail_storage_set_index_error(MAP_STORAGE(map), map->index);
 		return -1;
 	}
 	if (ret == 0) {
@@ -183,10 +182,12 @@
 	mdbox_map_cleanup(map);
 
 	if (mail_index_get_header(map->view)->uid_validity == 0) {
-		if (mdbox_map_generate_uid_validity(map) < 0 ||
-		    mdbox_map_refresh(map) < 0) {
-			mail_storage_set_internal_error(MAP_STORAGE(map));
-			mail_index_reset_error(map->index);
+		if (mdbox_map_generate_uid_validity(map) < 0) {
+			mail_storage_set_index_error(MAP_STORAGE(map), map->index);
+			mail_index_close(map->index);
+			return -1;
+		}
+		if (mdbox_map_refresh(map) < 0) {
 			mail_index_close(map->index);
 			return -1;
 		}
@@ -216,8 +217,7 @@
 	mdbox_files_sync_input(map->storage);
 
 	if (mail_index_refresh(map->view->index) < 0) {
-		mail_storage_set_internal_error(MAP_STORAGE(map));
-		mail_index_reset_error(map->index);
+		mail_storage_set_index_error(MAP_STORAGE(map), map->index);
 		return -1;
 	}
 	if (mail_index_view_get_transaction_count(map->view) > 0) {
@@ -229,8 +229,7 @@
 				MAIL_INDEX_VIEW_SYNC_FLAG_FIX_INCONSISTENT);
 	fscked = mail_index_reset_fscked(map->view->index);
 	if (mail_index_view_sync_commit(&ctx, &delayed_expunges) < 0) {
-		mail_storage_set_internal_error(MAP_STORAGE(map));
-		mail_index_reset_error(map->index);
+		mail_storage_set_index_error(MAP_STORAGE(map), map->index);
 		ret = -1;
 	}
 	if (fscked)
@@ -515,8 +514,8 @@
 		mdbox_storage_set_corrupted(atomic->map->storage);
 	if (ret <= 0) {
 		i_assert(ret != 0);
-		mail_storage_set_internal_error(MAP_STORAGE(atomic->map));
-		mail_index_reset_error(atomic->map->index);
+		mail_storage_set_index_error(MAP_STORAGE(atomic->map),
+					     atomic->map->index);
 		return -1;
 	}
 	mail_index_sync_set_reason(atomic->sync_ctx, reason);
@@ -562,8 +561,8 @@
 		i_assert(!atomic->locked);
 	} else if (atomic->success) {
 		if (mail_index_sync_commit(&atomic->sync_ctx) < 0) {
-			mail_storage_set_internal_error(MAP_STORAGE(atomic->map));
-			mail_index_reset_error(atomic->map->index);
+			mail_storage_set_index_error(MAP_STORAGE(atomic->map),
+						     atomic->map->index);
 			ret = -1;
 		}
 	} else {
@@ -616,8 +615,8 @@
 		return -1;
 
 	if (mail_index_transaction_commit(&ctx->trans) < 0) {
-		mail_storage_set_internal_error(MAP_STORAGE(ctx->atomic->map));
-		mail_index_reset_error(ctx->atomic->map->index);
+		mail_storage_set_index_error(MAP_STORAGE(ctx->atomic->map),
+					     ctx->atomic->map->index);
 		return -1;
 	}
 	mdbox_map_atomic_set_success(ctx->atomic);
@@ -1333,8 +1332,8 @@
 	}
 
 	if (mail_index_transaction_commit(&ctx->trans) < 0) {
-		mail_storage_set_internal_error(MAP_STORAGE(ctx->map));
-		mail_index_reset_error(ctx->map->index);
+		mail_storage_set_index_error(MAP_STORAGE(ctx->map),
+					     ctx->map->index);
 		return -1;
 	}
 
--- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Mon Aug 21 15:34:40 2017 +0300
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Mon Aug 21 15:44:41 2017 +0300
@@ -911,7 +911,8 @@
 
 	/* fsck the map just in case its UIDs are broken */
 	if (mail_index_fsck(ctx->storage->map->index) < 0) {
-		mail_storage_set_internal_error(&ctx->storage->storage.storage);
+		mail_storage_set_index_error(&ctx->storage->storage.storage,
+					     ctx->storage->map->index);
 		return -1;
 	}