From 8b0d10952fe2df72d86ebd0899822f6cd801b5b9 Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Wed, 25 Sep 2019 12:07:27 -0400 Subject: [PATCH 1/2] Don't generate core name when adding core to corepool. When core frome corepool is added to cache, it's old name is loaded and cores in corepool cannot be referenced by name anyway so new name is not needed. Signed-off-by: Michal Mielewczyk --- modules/cas_cache/layer_cache_management.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/modules/cas_cache/layer_cache_management.c b/modules/cas_cache/layer_cache_management.c index 78232f9..d1e7872 100644 --- a/modules/cas_cache/layer_cache_management.c +++ b/modules/cas_cache/layer_cache_management.c @@ -534,8 +534,7 @@ int cache_mngt_prepare_core_cfg(struct ocf_mngt_core_config *cfg, struct kcas_insert_core *cmd_info) { struct block_device *bdev; - static char core_name[OCF_CORE_NAME_SIZE]; - struct cache_priv *cache_priv; + char core_name[OCF_CORE_NAME_SIZE] = {}; ocf_cache_t cache; uint16_t core_id; int result; @@ -546,17 +545,19 @@ int cache_mngt_prepare_core_cfg(struct ocf_mngt_core_config *cfg, if (cmd_info->core_id == OCF_CORE_MAX) { result = mngt_get_cache_by_id(cas_ctx, cmd_info->cache_id, &cache); - if (result) + if (result && result != -OCF_ERR_CACHE_NOT_EXIST) { return result; + } else if (!result) { + struct cache_priv *cache_priv; + cache_priv = ocf_cache_get_priv(cache); + ocf_mngt_cache_put(cache); - cache_priv = ocf_cache_get_priv(cache); - ocf_mngt_cache_put(cache); + core_id = find_free_core_id(cache_priv->core_id_bitmap); + if (core_id == OCF_CORE_MAX) + return -OCF_ERR_INVAL; - core_id = find_free_core_id(cache_priv->core_id_bitmap); - if (core_id == OCF_CORE_MAX) - return -OCF_ERR_INVAL; - - cmd_info->core_id = core_id; + cmd_info->core_id = core_id; + } } snprintf(core_name, sizeof(core_name), "core%d", cmd_info->core_id); From 5cb7792678d7948663f3af346683381b6de95c16 Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Wed, 25 Sep 2019 15:34:29 -0400 Subject: [PATCH 2/2] Added description for occupied core id error. Signed-off-by: Michal Mielewczyk --- casadm/extended_err_msg.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/casadm/extended_err_msg.c b/casadm/extended_err_msg.c index e529d14..a7e6a7d 100644 --- a/casadm/extended_err_msg.c +++ b/casadm/extended_err_msg.c @@ -61,6 +61,10 @@ struct { OCF_ERR_TOO_MANY_CORES, "Too many core devices in cache" }, + { + OCF_ERR_CORE_EXIST, + "Core id already used" + }, { OCF_ERR_CORE_NOT_AVAIL, "Core device not available"