diff --git a/src/metadata/metadata.c b/src/metadata/metadata.c index ad238b0..d5bff02 100644 --- a/src/metadata/metadata.c +++ b/src/metadata/metadata.c @@ -1650,6 +1650,9 @@ static void ocf_metadata_load_properties_cmpl( ocf_ctx_t ctx = context->ctx; int result; + if (context->error) + OCF_CMPL_RET(priv, context->error, NULL); + result = ocf_metadata_validate_superblock(ctx, superblock); if (result) OCF_CMPL_RET(priv, result, NULL); @@ -1694,6 +1697,9 @@ static void ocf_metadata_probe_cmpl(struct ocf_metadata_read_sb_ctx *context) ocf_metadata_probe_end_t cmpl = context->priv1; void *priv = context->priv2; + if (context->error) + OCF_CMPL_RET(priv, context->error, NULL); + if (superblock->magic_number != CACHE_MAGIC_NUMBER) OCF_CMPL_RET(priv, -OCF_ERR_NO_METADATA, NULL); diff --git a/src/mngt/ocf_mngt_cache.c b/src/mngt/ocf_mngt_cache.c index 53eb618..7cc1aa8 100644 --- a/src/mngt/ocf_mngt_cache.c +++ b/src/mngt/ocf_mngt_cache.c @@ -2335,6 +2335,9 @@ static void _ocf_mngt_activate_compare_superblock_end( ocf_cache_t cache = context->cache; int result, diff; + if (sb_ctx->error) + OCF_PL_FINISH_RET(context->pipeline, sb_ctx->error); + result = env_memcmp(cache->conf_meta, sizeof(*cache->conf_meta), superblock, sizeof(*superblock), &diff); if (result)