diff --git a/src/mngt/ocf_mngt_cache.c b/src/mngt/ocf_mngt_cache.c index 6a3e65c..0b9450e 100644 --- a/src/mngt/ocf_mngt_cache.c +++ b/src/mngt/ocf_mngt_cache.c @@ -1012,7 +1012,7 @@ static void _ocf_mngt_load_read_properties_end(void *priv, int error, /* * Check if name loaded from disk is the same as present one. */ - if (env_strncmp(cache->conf_meta->name, OCF_CACHE_NAME_SIZE, + if (env_strncmp(cache->name, OCF_CACHE_NAME_SIZE, properties->cache_name, OCF_CACHE_NAME_SIZE)) { OCF_PL_FINISH_RET(context->pipeline, -OCF_ERR_CACHE_NAME_MISMATCH); } diff --git a/src/ocf_cache.c b/src/ocf_cache.c index 47aecde..3c7d12a 100644 --- a/src/ocf_cache.c +++ b/src/ocf_cache.c @@ -21,7 +21,14 @@ ocf_volume_t ocf_cache_get_volume(ocf_cache_t cache) int ocf_cache_set_name(ocf_cache_t cache, const char *src, size_t src_size) { + int result; + OCF_CHECK_NULL(cache); + + result = env_strncpy(cache->name, OCF_CACHE_NAME_SIZE, src, src_size); + if (result) + return result; + return env_strncpy(cache->conf_meta->name, OCF_CACHE_NAME_SIZE, src, src_size); } @@ -29,7 +36,7 @@ int ocf_cache_set_name(ocf_cache_t cache, const char *src, size_t src_size) const char *ocf_cache_get_name(ocf_cache_t cache) { OCF_CHECK_NULL(cache); - return cache->conf_meta->name; + return cache->name; } bool ocf_cache_is_incomplete(ocf_cache_t cache) diff --git a/src/ocf_cache_priv.h b/src/ocf_cache_priv.h index 317918b..ce5239c 100644 --- a/src/ocf_cache_priv.h +++ b/src/ocf_cache_priv.h @@ -51,6 +51,8 @@ struct ocf_cache_device { }; struct ocf_cache { + char name[OCF_CACHE_NAME_SIZE]; + ocf_ctx_t owner; struct list_head list;