Merge pull request #1537 from mmichal10/block-attach

Block attach
This commit is contained in:
Robert Baldyga 2024-09-26 18:50:34 +02:00 committed by GitHub
commit 9176a2449e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 21 additions and 7 deletions

View File

@ -623,8 +623,8 @@ int args_parse(app *app_values, cli_command *commands, int argc, const char **ar
}
if (is_command_blocked(commands, i)) {
cas_printf(LOG_ERR, "The command is not supported\n");
return FAILURE;
cas_printf(LOG_INFO, "The command is not supported\n");
return SUCCESS;
}
configure_cli_commands(commands);

View File

@ -2237,7 +2237,7 @@ static cli_command cas_commands[] = {
.options = attach_cache_options,
.command_handle_opts = start_cache_command_handle_option,
.handle = handle_cache_attach,
.flags = CLI_SU_REQUIRED,
.flags = (CLI_SU_REQUIRED | CLI_COMMAND_BLOCKED),
.help = NULL,
},
{
@ -2247,7 +2247,7 @@ static cli_command cas_commands[] = {
.options = detach_options,
.command_handle_opts = command_handle_option,
.handle = handle_cache_detach,
.flags = CLI_SU_REQUIRED,
.flags = (CLI_SU_REQUIRED | CLI_COMMAND_BLOCKED),
.help = NULL,
},
{

View File

@ -2538,20 +2538,27 @@ int cache_mngt_attach_device(const char *cache_name, size_t name_len,
result = ocf_mngt_cache_get_by_name(cas_ctx, cache_name,
OCF_CACHE_NAME_SIZE, &cache);
if (result)
if (result) {
ocf_volume_destroy(attach_cfg->device.volume);
goto err_get;
}
result = _cache_mngt_lock_sync(cache);
if (result)
if (result) {
ocf_volume_destroy(attach_cfg->device.volume);
goto err_lock;
}
result = cache_mngt_check_bdev(&attach_cfg->device,
attach_cfg->force, true, cache);
if (result)
if (result) {
ocf_volume_destroy(attach_cfg->device.volume);
goto err_ctx;
}
context = kzalloc(sizeof(*context), GFP_KERNEL);
if (!context) {
ocf_volume_destroy(attach_cfg->device.volume);
result = -ENOMEM;
goto err_ctx;
}

View File

@ -86,6 +86,10 @@ long cas_service_ioctl_ctrl(struct file *filp, unsigned int cmd,
GET_CMD_INFO(cmd_info, arg);
printk(KERN_ERR "Cache attach is not supported!\n");
retval = -ENOTSUP;
RETURN_CMD_RESULT(cmd_info, arg, retval);
cache_name_from_id(cache_name, cmd_info->cache_id);
retval = cache_mngt_attach_cache_cfg(cache_name, OCF_CACHE_NAME_SIZE,
@ -104,6 +108,9 @@ long cas_service_ioctl_ctrl(struct file *filp, unsigned int cmd,
char cache_name[OCF_CACHE_NAME_SIZE];
GET_CMD_INFO(cmd_info, arg);
printk(KERN_ERR "Cache detach is not supported!\n");
retval = -ENOTSUP;
RETURN_CMD_RESULT(cmd_info, arg, retval);
cache_name_from_id(cache_name, cmd_info->cache_id);