return ret;
}
-static int mdbox_storage_rebuild_scan(struct mdbox_storage_rebuild_context *ctx)
+static int
+mdbox_storage_rebuild_scan_prepare(struct mdbox_storage_rebuild_context *ctx)
{
const void *data;
size_t data_size;
/* storage was already rebuilt by someone else */
return 0;
}
+ return 1;
+}
+static int mdbox_storage_rebuild_scan(struct mdbox_storage_rebuild_context *ctx)
+{
i_warning("mdbox %s: rebuilding indexes", ctx->storage->storage_dir);
if (mdbox_storage_rebuild_scan_dir(ctx, ctx->storage->storage_dir,
}
ctx = mdbox_storage_rebuild_init(storage, atomic);
- ret = mdbox_storage_rebuild_scan(ctx);
+ if ((ret = mdbox_storage_rebuild_scan_prepare(ctx)) > 0)
+ ret = mdbox_storage_rebuild_scan(ctx);
mdbox_storage_rebuild_deinit(ctx);
if (ret == 0) {