Merge pull request #1222 from jfckm/update-ocf

Use new OCF volume API
This commit is contained in:
Adam Rutkowski 2022-06-09 15:13:13 +02:00 committed by GitHub
commit 4b0d19d815
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 67 additions and 29 deletions

View File

@ -1837,26 +1837,50 @@ static int cache_mngt_initialize_cache_exported_object(ocf_cache_t cache)
return 0;
}
int cache_mngt_prepare_cache_device_cfg(struct ocf_mngt_cache_device_config *cfg,
char *cache_path)
static int cache_mngt_create_cache_device_cfg(
struct ocf_mngt_cache_device_config *cfg, char *cache_path)
{
int result = 0;
int path_length = strnlen(cache_path, MAX_STR_LEN);
struct ocf_volume_uuid uuid;
ocf_volume_t volume;
ocf_volume_type_t volume_type;
uint8_t volume_type_id;
memset(cfg, 0, sizeof(*cfg));
if (strnlen(cache_path, MAX_STR_LEN) == MAX_STR_LEN)
if (path_length == MAX_STR_LEN || path_length == 0)
return -OCF_ERR_INVAL;
cfg->uuid.data = cache_path;
cfg->uuid.size = strnlen(cfg->uuid.data, MAX_STR_LEN) + 1;
result = cas_blk_identify_type(cache_path, &volume_type_id);
if (result)
return result;
volume_type = ocf_ctx_get_volume_type(cas_ctx, volume_type_id);
if (!volume_type)
return -OCF_ERR_INVAL;
uuid.data = cache_path;
uuid.size = path_length + 1;
result = ocf_volume_create(&volume, volume_type, &uuid);
if (result)
return result;
cfg->perform_test = false;
cfg->volume = volume;
if (cfg->uuid.size <= 1)
return -OCF_ERR_INVAL;
return cas_blk_identify_type(cfg->uuid.data,
&cfg->volume_type);
return 0;
}
int cache_mngt_prepare_cache_cfg(struct ocf_mngt_cache_config *cfg,
void cache_mngt_destroy_cache_cfg(struct ocf_mngt_cache_config *cfg,
struct ocf_mngt_cache_attach_config *attach_cfg)
{
ocf_volume_destroy(attach_cfg->device.volume);
}
int cache_mngt_create_cache_cfg(struct ocf_mngt_cache_config *cfg,
struct ocf_mngt_cache_attach_config *attach_cfg,
struct kcas_start_cache *cmd)
{
@ -1898,14 +1922,11 @@ int cache_mngt_prepare_cache_cfg(struct ocf_mngt_cache_config *cfg,
memset(cfg, 0, sizeof(*cfg));
memset(attach_cfg, 0, sizeof(*attach_cfg));
result = cache_mngt_prepare_cache_device_cfg(&attach_cfg->device,
result = cache_mngt_create_cache_device_cfg(&attach_cfg->device,
cmd->cache_path_name);
if (result)
return result;
if (attach_cfg->device.uuid.size <= 1)
return -OCF_ERR_INVAL;
strncpy(cfg->name, cache_name, OCF_CACHE_NAME_SIZE - 1);
cfg->cache_mode = cmd->caching_mode;
cfg->cache_line_size = cmd->line_size;
@ -1942,8 +1963,11 @@ int cache_mngt_prepare_cache_cfg(struct ocf_mngt_cache_config *cfg,
static void _cache_mngt_log_cache_device_path(ocf_cache_t cache,
struct ocf_mngt_cache_device_config *device_cfg)
{
const struct ocf_volume_uuid *uuid =
ocf_volume_get_uuid(device_cfg->volume);
printk(KERN_INFO OCF_PREFIX_SHORT "Adding device %s as cache %s\n",
(const char*)device_cfg->uuid.data,
(const char*)uuid->data,
ocf_cache_get_name(cache));
}
@ -2212,8 +2236,9 @@ int cache_mngt_check_bdev(struct ocf_mngt_cache_device_config *device_cfg,
struct block_device *bdev;
int part_count;
bool is_part;
const struct ocf_volume_uuid *uuid = ocf_volume_get_uuid(device_cfg->volume);
bdev = blkdev_get_by_path(device_cfg->uuid.data,
bdev = blkdev_get_by_path(uuid->data,
(FMODE_EXCL|FMODE_READ), holder);
if (IS_ERR(bdev)) {
return (PTR_ERR(bdev) == -EBUSY) ?
@ -2285,7 +2310,13 @@ out_module_put:
return result;
}
int cache_mngt_prepare_cache_standby_activate_cfg(
void cache_mngt_destroy_cache_standby_activate_cfg(
struct ocf_mngt_cache_standby_activate_config *cfg)
{
ocf_volume_destroy(cfg->device.volume);
}
int cache_mngt_create_cache_standby_activate_cfg(
struct ocf_mngt_cache_standby_activate_config *cfg,
struct kcas_standby_activate *cmd)
{
@ -2296,7 +2327,7 @@ int cache_mngt_prepare_cache_standby_activate_cfg(
memset(cfg, 0, sizeof(*cfg));
result = cache_mngt_prepare_cache_device_cfg(&cfg->device,
result = cache_mngt_create_cache_device_cfg(&cfg->device,
cmd->cache_path);
if (result)
return result;

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2012-2021 Intel Corporation
* Copyright(c) 2012-2022 Intel Corporation
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __LAYER_CACHE_MANAGEMENT_H__
@ -45,10 +45,10 @@ int cache_mngt_set_partitions(const char *cache_name, size_t name_len,
int cache_mngt_exit_instance(const char *cache_name, size_t name_len,
int flush);
int cache_mngt_prepare_cache_device_cfg(struct ocf_mngt_cache_device_config *cfg,
char *cache_path);
void cache_mngt_destroy_cache_cfg(struct ocf_mngt_cache_config *cfg,
struct ocf_mngt_cache_attach_config *attach_cfg);
int cache_mngt_prepare_cache_cfg(struct ocf_mngt_cache_config *cfg,
int cache_mngt_create_cache_cfg(struct ocf_mngt_cache_config *cfg,
struct ocf_mngt_cache_attach_config *attach_cfg,
struct kcas_start_cache *cmd);
@ -113,7 +113,10 @@ int cache_mngt_get_cache_params(struct kcas_get_cache_param *info);
int cache_mngt_standby_detach(struct kcas_standby_detach *cmd);
int cache_mngt_prepare_cache_standby_activate_cfg(
void cache_mngt_destroy_cache_standby_activate_cfg(
struct ocf_mngt_cache_standby_activate_config *cfg);
int cache_mngt_create_cache_standby_activate_cfg(
struct ocf_mngt_cache_standby_activate_config *cfg,
struct kcas_standby_activate *cmd);

View File

@ -1,5 +1,5 @@
/*
* Copyright(c) 2012-2021 Intel Corporation
* Copyright(c) 2012-2022 Intel Corporation
* SPDX-License-Identifier: BSD-3-Clause
*/
@ -54,12 +54,14 @@ long cas_service_ioctl_ctrl(struct file *filp, unsigned int cmd,
GET_CMD_INFO(cmd_info, arg);
retval = cache_mngt_prepare_cache_cfg(&cfg, &attach_cfg, cmd_info);
retval = cache_mngt_create_cache_cfg(&cfg, &attach_cfg, cmd_info);
if (retval)
RETURN_CMD_RESULT(cmd_info, arg, retval);
retval = cache_mngt_init_instance(&cfg, &attach_cfg, cmd_info);
cache_mngt_destroy_cache_cfg(&cfg, &attach_cfg);
RETURN_CMD_RESULT(cmd_info, arg, retval);
}
@ -393,13 +395,15 @@ long cas_service_ioctl_ctrl(struct file *filp, unsigned int cmd,
GET_CMD_INFO(cmd_info, arg);
retval = cache_mngt_prepare_cache_standby_activate_cfg(&cfg,
retval = cache_mngt_create_cache_standby_activate_cfg(&cfg,
cmd_info);
if (retval)
RETURN_CMD_RESULT(cmd_info, arg, retval);
retval = cache_mngt_activate(&cfg, cmd_info);
cache_mngt_destroy_cache_standby_activate_cfg(&cfg);
RETURN_CMD_RESULT(cmd_info, arg, retval);
}
default:

2
ocf

@ -1 +1 @@
Subproject commit 99608c9a306e3e2a4f586eb097ae03d321b518ef
Subproject commit b053f7925a72da113e2cda73fc911b398da3b0ed

View File

@ -1,3 +1,3 @@
CAS_VERSION_MAIN=22
CAS_VERSION_MAJOR=3
CAS_VERSION_MAJOR=6
CAS_VERSION_MINOR=0