Merge pull request #125 from robertbaldyga/core-param-error-handling

Fix core set param error handling
This commit is contained in:
Adam Rutkowski 2019-09-25 20:28:06 +02:00 committed by GitHub
commit 360a73ae5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 9 deletions

View File

@ -2085,9 +2085,11 @@ int cache_mngt_set_core_params(struct kcas_set_core_param *info)
if (result)
return result;
result = get_core_by_id(cache, info->core_id, &core);
if (result && result != -OCF_ERR_CORE_NOT_EXIST)
goto out;
if (info->core_id != OCF_CORE_ID_INVALID) {
result = get_core_by_id(cache, info->core_id, &core);
if (result)
goto out;
}
switch (info->param_id) {
case core_param_seq_cutoff_threshold:

View File

@ -12,15 +12,23 @@ struct {
} static cas_error_code_map[] = {
/* OCF error mappings*/
{ OCF_ERR_INVAL, EINVAL },
{ OCF_ERR_INVAL_VOLUME_TYPE, EINVAL },
{ OCF_ERR_AGAIN, EAGAIN },
{ OCF_ERR_INTR, EINTR },
{ OCF_ERR_NOT_SUPP, ENOTSUP },
{ OCF_ERR_NO_MEM, ENOMEM },
{ OCF_ERR_NO_LOCK, EFAULT },
{ OCF_ERR_METADATA_VER, EBADF },
{ OCF_ERR_NO_METADATA, ENODATA },
{ OCF_ERR_METADATA_FOUND, EEXIST },
{ OCF_ERR_INVAL_VOLUME_TYPE, EINVAL },
{ OCF_ERR_UNKNOWN, EINVAL },
{ OCF_ERR_TOO_MANY_CACHES, ENOSPC },
{ OCF_ERR_NO_MEM, ENOMEM },
{ OCF_ERR_NO_FREE_RAM, ENOMEM },
{ OCF_ERR_START_CACHE_FAIL, EFAULT },
{ OCF_ERR_CACHE_NOT_EXIST, ENODEV },
{ OCF_ERR_CORE_NOT_EXIST, ENODEV },
{ OCF_ERR_CACHE_EXIST, EEXIST },
{ OCF_ERR_CORE_EXIST, EEXIST },
{ OCF_ERR_TOO_MANY_CORES, ENOSPC },
{ OCF_ERR_CORE_NOT_AVAIL, ENAVAIL },
{ OCF_ERR_NOT_OPEN_EXC, EBUSY },
@ -32,10 +40,11 @@ struct {
{ OCF_ERR_DIRTY_SHUTDOWN, EFAULT },
{ OCF_ERR_DIRTY_EXISTS, EFAULT },
{ OCF_ERR_FLUSHING_INTERRUPTED, EINTR },
{ OCF_ERR_AGAIN, EAGAIN },
{ OCF_ERR_NOT_SUPP, ENOTSUP },
{ OCF_ERR_METADATA_VER, EBADF },
{ OCF_ERR_NO_METADATA, ENODATA },
{ OCF_ERR_CANNOT_ADD_CORE_TO_POOL, EFAULT },
{ OCF_ERR_CACHE_IN_INCOMPLETE_STATE, ENODEV },
{ OCF_ERR_CORE_IN_INACTIVE_STATE, ENODEV },
{ OCF_ERR_INVALID_CACHE_MODE, EINVAL },
{ OCF_ERR_INVALID_CACHE_LINE_SIZE, EINVAL },
/* CAS kernel error mappings*/
{ KCAS_ERR_ROOT, EPERM },