diff --git a/modules/cas_cache/layer_cache_management.c b/modules/cas_cache/layer_cache_management.c index 7ee0bd4..8e7827d 100644 --- a/modules/cas_cache/layer_cache_management.c +++ b/modules/cas_cache/layer_cache_management.c @@ -1606,22 +1606,12 @@ out_get: static int _cache_mngt_create_exported_object(ocf_core_t core, void *cntx) { int result; - ocf_cache_t cache = ocf_core_get_cache(core); result = block_dev_create_exported_object(core); - if (result) { - printk(KERN_ERR "Cannot to create exported object, %s.%s\n", - ocf_cache_get_name(cache), - ocf_core_get_name(core)); + if (result) return result; - } result = block_dev_activate_exported_object(core); - if (result) { - printk(KERN_ERR "Cannot to activate exported object, %s.%s\n", - ocf_cache_get_name(cache), - ocf_core_get_name(core)); - } return result; } diff --git a/modules/cas_cache/volume/vol_block_dev_top.c b/modules/cas_cache/volume/vol_block_dev_top.c index 1daae76..57039ca 100644 --- a/modules/cas_cache/volume/vol_block_dev_top.c +++ b/modules/cas_cache/volume/vol_block_dev_top.c @@ -822,16 +822,24 @@ int block_dev_activate_exported_object(ocf_core_t core) { int ret; ocf_volume_t obj = ocf_core_get_volume(core); + ocf_cache_t cache = ocf_core_get_cache(core); struct bd_object *bvol = bd_object(obj); if (!cas_upgrade_is_in_upgrade()) { ret = casdisk_functions.casdsk_exp_obj_activate(bvol->dsk); if (-EEXIST == ret) - return KCAS_ERR_FILE_EXISTS; + ret = KCAS_ERR_FILE_EXISTS; } else { ret = casdisk_functions.casdsk_disk_attach(bvol->dsk, THIS_MODULE, &_blockdev_exp_obj_ops); } + + if (ret) { + printk(KERN_ERR "Cannot activate exported object, %s.%s. " + "Error code %d\n", ocf_cache_get_name(cache), + ocf_core_get_name(core), ret); + } + return ret; } @@ -871,8 +879,10 @@ int block_dev_create_exported_object(ocf_core_t core) get_core_id_string(core)); dsk = casdisk_functions.casdsk_disk_claim(uuid->data, core); - if (dsk != bvol->dsk) - return -KCAS_ERR_SYSTEM; + if (dsk != bvol->dsk) { + result = -KCAS_ERR_SYSTEM; + goto end; + } if (cas_upgrade_is_in_upgrade()) { bvol->expobj_valid = true; @@ -884,6 +894,11 @@ int block_dev_create_exported_object(ocf_core_t core) if (!result) bvol->expobj_valid = true; +end: + if (result) { + printk(KERN_ERR "Cannot create exported object %s. Error code %d\n", + dev_name, result); + } return result; } diff --git a/modules/cas_disk/exp_obj.c b/modules/cas_disk/exp_obj.c index ad856b1..a4d2ebe 100644 --- a/modules/cas_disk/exp_obj.c +++ b/modules/cas_disk/exp_obj.c @@ -557,8 +557,8 @@ int casdsk_exp_obj_create(struct casdsk_disk *dsk, const char *dev_name, } queue = blk_mq_init_queue(&dsk->tag_set); - if (!queue) { - result = -ENOMEM; + if (IS_ERR_OR_NULL(queue)) { + result = queue ? PTR_ERR(queue) : -ENOMEM; goto error_init_queue; }