Add ocf_metadata_load_unsafe()
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
parent
ad52a7e2e1
commit
85e8b414c4
@ -1146,6 +1146,79 @@ void ocf_metadata_load_all(ocf_cache_t cache,
|
|||||||
ocf_pipeline_next(pipeline);
|
ocf_pipeline_next(pipeline);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ocf_metadata_load_unsafe_finish(ocf_pipeline_t pipeline,
|
||||||
|
void *priv, int error)
|
||||||
|
{
|
||||||
|
struct ocf_metadata_context *context = priv;
|
||||||
|
ocf_cache_t cache = context->cache;
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
ocf_cache_log(cache, log_err, "Metadata read FAILURE\n");
|
||||||
|
ocf_metadata_error(cache);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
ocf_cache_log(cache, log_info, "Done loading cache state\n");
|
||||||
|
|
||||||
|
out:
|
||||||
|
context->cmpl(context->priv, error);
|
||||||
|
ocf_pipeline_destroy(pipeline);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ocf_pipeline_arg ocf_metadata_load_unsafe_args[] = {
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_sb_config),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_sb_runtime),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_part_config),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_part_runtime),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_core_config),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_core_runtime),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_core_uuid),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_cleaning),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_lru),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_collision),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_list_info),
|
||||||
|
OCF_PL_ARG_INT(metadata_segment_hash),
|
||||||
|
OCF_PL_ARG_TERMINATOR(),
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ocf_pipeline_properties ocf_metadata_load_unsafe_pipeline_props = {
|
||||||
|
.priv_size = sizeof(struct ocf_metadata_context),
|
||||||
|
.finish = ocf_metadata_load_unsafe_finish,
|
||||||
|
.steps = {
|
||||||
|
OCF_PL_STEP_FOREACH(ocf_metadata_load_segment,
|
||||||
|
ocf_metadata_load_unsafe_args),
|
||||||
|
OCF_PL_STEP_TERMINATOR(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load metadata unsafe
|
||||||
|
*/
|
||||||
|
void ocf_metadata_load_unsafe(ocf_cache_t cache,
|
||||||
|
ocf_metadata_end_t cmpl, void *priv)
|
||||||
|
{
|
||||||
|
struct ocf_metadata_context *context;
|
||||||
|
ocf_pipeline_t pipeline;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
OCF_DEBUG_TRACE(cache);
|
||||||
|
|
||||||
|
result = ocf_pipeline_create(&pipeline, cache,
|
||||||
|
&ocf_metadata_load_unsafe_pipeline_props);
|
||||||
|
if (result)
|
||||||
|
OCF_CMPL_RET(priv, result);
|
||||||
|
|
||||||
|
context = ocf_pipeline_get_priv(pipeline);
|
||||||
|
|
||||||
|
context->cmpl = cmpl;
|
||||||
|
context->priv = priv;
|
||||||
|
context->pipeline = pipeline;
|
||||||
|
context->cache = cache;
|
||||||
|
context->ctrl = cache->metadata.priv;
|
||||||
|
|
||||||
|
ocf_pipeline_next(pipeline);
|
||||||
|
}
|
||||||
|
|
||||||
static void ocf_metadata_load_recovery_legacy_finish(
|
static void ocf_metadata_load_recovery_legacy_finish(
|
||||||
ocf_pipeline_t pipeline, void *priv, int error)
|
ocf_pipeline_t pipeline, void *priv, int error)
|
||||||
{
|
{
|
||||||
|
@ -164,6 +164,16 @@ void ocf_metadata_flush_do_asynch(struct ocf_cache *cache,
|
|||||||
void ocf_metadata_load_all(ocf_cache_t cache,
|
void ocf_metadata_load_all(ocf_cache_t cache,
|
||||||
ocf_metadata_end_t cmpl, void *priv);
|
ocf_metadata_end_t cmpl, void *priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Load metadata unsafe
|
||||||
|
*
|
||||||
|
* @param cache - Cache instance
|
||||||
|
* @param cmpl - Completion callback
|
||||||
|
* @param priv - Completion context
|
||||||
|
*/
|
||||||
|
void ocf_metadata_load_unsafe(ocf_cache_t cache,
|
||||||
|
ocf_metadata_end_t cmpl, void *priv);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Load metadata required for recovery procedure
|
* @brief Load metadata required for recovery procedure
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user