diff --git a/casadm/cas_lib.c b/casadm/cas_lib.c index bbf5385..e411fa8 100644 --- a/casadm/cas_lib.c +++ b/casadm/cas_lib.c @@ -1640,6 +1640,11 @@ int add_core(unsigned int cache_id, unsigned int core_id, const char *core_devic const char *core_path; /* core path sent down to kernel */ const char *user_core_path; /* core path provided by user */ + if (try_add && core_id == OCF_CORE_ID_INVALID) { + cas_printf(LOG_ERR, "Option '--core-id' is missing\n"); + return FAILURE; + } + /* Check if core device provided is valid */ fd = open(core_device, 0); if (fd < 0) { diff --git a/modules/cas_cache/layer_cache_management.c b/modules/cas_cache/layer_cache_management.c index d235433..6c65dec 100644 --- a/modules/cas_cache/layer_cache_management.c +++ b/modules/cas_cache/layer_cache_management.c @@ -1179,7 +1179,10 @@ int cache_mngt_prepare_core_cfg(struct ocf_mngt_core_config *cfg, if (strnlen(cmd_info->core_path_name, MAX_STR_LEN) >= MAX_STR_LEN) return -OCF_ERR_INVAL; - + + if (cmd_info->try_add && cmd_info->core_id == OCF_CORE_MAX) + return -OCF_ERR_INVAL; + result = mngt_get_cache_by_id(cas_ctx, cmd_info->cache_id, &cache); if (result && result != -OCF_ERR_CACHE_NOT_EXIST) { return result;