Store cache name in metadata
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
parent
b73b2857dd
commit
eb4272afa9
@ -32,18 +32,16 @@ int ocf_metadata_init(struct ocf_cache *cache,
|
|||||||
|
|
||||||
ENV_BUG_ON(cache->metadata.iface_priv);
|
ENV_BUG_ON(cache->metadata.iface_priv);
|
||||||
|
|
||||||
ret = ocf_metadata_io_init(cache);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
*iface = *metadata_hash_get_iface();
|
*iface = *metadata_hash_get_iface();
|
||||||
ret = cache->metadata.iface.init(cache, cache_line_size);
|
ret = cache->metadata.iface.init(cache, cache_line_size);
|
||||||
if (ret)
|
if (ret) {
|
||||||
ocf_metadata_io_deinit(cache);
|
ocf_metadata_io_deinit(cache);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
ocf_metadata_concurrency_init(cache);
|
ocf_metadata_concurrency_init(cache);
|
||||||
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ocf_metadata_init_variable_size(struct ocf_cache *cache, uint64_t device_size,
|
int ocf_metadata_init_variable_size(struct ocf_cache *cache, uint64_t device_size,
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#ifndef __METADATA_SUPERBLOCK_H__
|
#ifndef __METADATA_SUPERBLOCK_H__
|
||||||
#define __METADATA_SUPERBLOCK_H__
|
#define __METADATA_SUPERBLOCK_H__
|
||||||
|
|
||||||
|
#include <ocf/ocf_def.h>
|
||||||
#include <ocf/ocf_def.h>
|
#include <ocf/ocf_def.h>
|
||||||
|
|
||||||
#define CACHE_MAGIC_NUMBER 0x187E1CA6
|
#define CACHE_MAGIC_NUMBER 0x187E1CA6
|
||||||
@ -26,6 +27,8 @@ struct ocf_superblock_config {
|
|||||||
/* Currently set cache mode */
|
/* Currently set cache mode */
|
||||||
ocf_cache_mode_t cache_mode;
|
ocf_cache_mode_t cache_mode;
|
||||||
|
|
||||||
|
char name[OCF_CACHE_NAME_SIZE];
|
||||||
|
|
||||||
ocf_cache_line_t cachelines;
|
ocf_cache_line_t cachelines;
|
||||||
uint32_t valid_parts_no;
|
uint32_t valid_parts_no;
|
||||||
|
|
||||||
|
@ -701,7 +701,6 @@ static int _ocf_mngt_init_prepare_cache(struct ocf_cache_mngt_init_params *param
|
|||||||
struct ocf_mngt_cache_config *cfg)
|
struct ocf_mngt_cache_config *cfg)
|
||||||
{
|
{
|
||||||
ocf_cache_t cache;
|
ocf_cache_t cache;
|
||||||
char cache_name[OCF_CACHE_NAME_SIZE];
|
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret = env_rmutex_lock_interruptible(¶m->ctx->lock);
|
ret = env_rmutex_lock_interruptible(¶m->ctx->lock);
|
||||||
@ -735,12 +734,7 @@ static int _ocf_mngt_init_prepare_cache(struct ocf_cache_mngt_init_params *param
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = env_strncpy(cache_name, sizeof(cache_name),
|
ocf_log(param->ctx, log_info, "Inserting cache %s\n", cfg->name);
|
||||||
cfg->name, sizeof(cache_name));
|
|
||||||
if (ret)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
ocf_log(param->ctx, log_info, "Inserting cache %s\n", cache_name);
|
|
||||||
|
|
||||||
ret = _ocf_mngt_init_new_cache(param);
|
ret = _ocf_mngt_init_new_cache(param);
|
||||||
if (ret)
|
if (ret)
|
||||||
@ -748,10 +742,6 @@ static int _ocf_mngt_init_prepare_cache(struct ocf_cache_mngt_init_params *param
|
|||||||
|
|
||||||
cache = param->cache;
|
cache = param->cache;
|
||||||
|
|
||||||
ret = ocf_cache_set_name(cache, cache_name, sizeof(cache_name));
|
|
||||||
if (ret)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
cache->backfill.max_queue_size = cfg->backfill.max_queue_size;
|
cache->backfill.max_queue_size = cfg->backfill.max_queue_size;
|
||||||
cache->backfill.queue_unblock_size = cfg->backfill.queue_unblock_size;
|
cache->backfill.queue_unblock_size = cfg->backfill.queue_unblock_size;
|
||||||
|
|
||||||
@ -1265,6 +1255,7 @@ static int _ocf_mngt_cache_start(ocf_ctx_t ctx, ocf_cache_t *cache,
|
|||||||
struct ocf_mngt_cache_config *cfg)
|
struct ocf_mngt_cache_config *cfg)
|
||||||
{
|
{
|
||||||
struct ocf_cache_mngt_init_params params;
|
struct ocf_cache_mngt_init_params params;
|
||||||
|
ocf_cache_t tmp_cache;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
ENV_BUG_ON(env_memset(¶ms, sizeof(params), 0));
|
ENV_BUG_ON(env_memset(¶ms, sizeof(params), 0));
|
||||||
@ -1284,21 +1275,30 @@ static int _ocf_mngt_cache_start(ocf_ctx_t ctx, ocf_cache_t *cache,
|
|||||||
if (result)
|
if (result)
|
||||||
goto _cache_mngt_init_instance_ERROR;
|
goto _cache_mngt_init_instance_ERROR;
|
||||||
|
|
||||||
*cache = params.cache;
|
tmp_cache = params.cache;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize metadata selected segments of metadata in memory
|
* Initialize metadata selected segments of metadata in memory
|
||||||
*/
|
*/
|
||||||
result = ocf_metadata_init(*cache, params.metadata.line_size);
|
result = ocf_metadata_init(tmp_cache, params.metadata.line_size);
|
||||||
if (result) {
|
if (result) {
|
||||||
result = -OCF_ERR_START_CACHE_FAIL;
|
result = -OCF_ERR_START_CACHE_FAIL;
|
||||||
goto _cache_mngt_init_instance_ERROR;
|
goto _cache_mngt_init_instance_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ocf_log(ctx, log_debug, "Metadata initialized\n");
|
|
||||||
params.flags.metadata_inited = true;
|
params.flags.metadata_inited = true;
|
||||||
|
|
||||||
_ocf_mngt_cache_init(*cache, ¶ms);
|
result = ocf_cache_set_name(tmp_cache, cfg->name, OCF_CACHE_NAME_SIZE);
|
||||||
|
if (result)
|
||||||
|
goto _cache_mngt_init_instance_ERROR;
|
||||||
|
|
||||||
|
result = ocf_metadata_io_init(tmp_cache);
|
||||||
|
if (result)
|
||||||
|
goto _cache_mngt_init_instance_ERROR;
|
||||||
|
|
||||||
|
ocf_cache_log(tmp_cache, log_debug, "Metadata initialized\n");
|
||||||
|
|
||||||
|
_ocf_mngt_cache_init(tmp_cache, ¶ms);
|
||||||
|
|
||||||
ocf_ctx_get(ctx);
|
ocf_ctx_get(ctx);
|
||||||
|
|
||||||
@ -1306,10 +1306,12 @@ static int _ocf_mngt_cache_start(ocf_ctx_t ctx, ocf_cache_t *cache,
|
|||||||
/* User did not request to lock cache instance after creation -
|
/* User did not request to lock cache instance after creation -
|
||||||
unlock it here since we have acquired the lock to
|
unlock it here since we have acquired the lock to
|
||||||
perform management operations. */
|
perform management operations. */
|
||||||
ocf_mngt_cache_unlock(*cache);
|
ocf_mngt_cache_unlock(tmp_cache);
|
||||||
params.flags.cache_locked = false;
|
params.flags.cache_locked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*cache = tmp_cache;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
_cache_mngt_init_instance_ERROR:
|
_cache_mngt_init_instance_ERROR:
|
||||||
|
@ -26,13 +26,14 @@ ocf_cache_id_t ocf_cache_get_id(ocf_cache_t cache)
|
|||||||
int ocf_cache_set_name(ocf_cache_t cache, const char *src, size_t src_size)
|
int ocf_cache_set_name(ocf_cache_t cache, const char *src, size_t src_size)
|
||||||
{
|
{
|
||||||
OCF_CHECK_NULL(cache);
|
OCF_CHECK_NULL(cache);
|
||||||
return env_strncpy(cache->name, OCF_CACHE_NAME_SIZE - 1, src, src_size);
|
return env_strncpy(cache->conf_meta->name, OCF_CACHE_NAME_SIZE,
|
||||||
|
src, src_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ocf_cache_get_name(ocf_cache_t cache)
|
const char *ocf_cache_get_name(ocf_cache_t cache)
|
||||||
{
|
{
|
||||||
OCF_CHECK_NULL(cache);
|
OCF_CHECK_NULL(cache);
|
||||||
return cache->name;
|
return cache->conf_meta->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ocf_cache_is_incomplete(ocf_cache_t cache)
|
bool ocf_cache_is_incomplete(ocf_cache_t cache)
|
||||||
|
@ -114,8 +114,6 @@ struct ocf_cache {
|
|||||||
|
|
||||||
int cache_id;
|
int cache_id;
|
||||||
|
|
||||||
char name[OCF_CACHE_NAME_SIZE];
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
/* cache get/put counter */
|
/* cache get/put counter */
|
||||||
struct ocf_refcnt cache;
|
struct ocf_refcnt cache;
|
||||||
|
Loading…
Reference in New Issue
Block a user