ocf/vbdev_ocf: construct function vbdev_ocf_mngt_exit.

Put these exit behaviors into one function.
Make this more readable.

Signed-off-by: yidong0635 <dongx.yi@intel.com>
Change-Id: Ifd7a74910847dffd3d8c6c6db61e6e1fc7a8d779
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2283
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
yidong0635 2020-05-09 05:10:45 -04:00 committed by Tomasz Zawadzki
parent 669985172f
commit cb3e674c1e

View File

@ -916,6 +916,13 @@ clear_starting_indicator_vbdev(struct vbdev_ocf *vbdev)
vbdev->state.starting = false;
}
static void
vbdev_ocf_mngt_exit(struct vbdev_ocf *vbdev, vbdev_ocf_mngt_fn *rollback_path, int rc)
{
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, rollback_path, rc);
}
/* Create exported spdk object */
static void
finish_register(struct vbdev_ocf *vbdev)
@ -942,8 +949,7 @@ finish_register(struct vbdev_ocf *vbdev)
if (result) {
SPDK_ERRLOG("Could not register exposed bdev %s\n",
vbdev->name);
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, result);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, result);
return;
} else {
vbdev->state.started = true;
@ -962,8 +968,7 @@ add_core_cmpl(ocf_cache_t cache, ocf_core_t core, void *priv, int error)
if (error) {
SPDK_ERRLOG("Error %d, failed to add core device to cache instance %s,"
"starting rollback\n", error, vbdev->name);
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, error);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, error);
return;
} else {
vbdev->ocf_core = core;
@ -981,8 +986,7 @@ add_core_cache_lock_cmpl(ocf_cache_t cache, void *priv, int error)
if (error) {
SPDK_ERRLOG("Error %d, can not lock cache instance %s,"
"starting rollback\n", error, vbdev->name);
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, error);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, error);
}
ocf_mngt_cache_add_core(vbdev->ocf_cache, &vbdev->cfg.core, add_core_cmpl, vbdev);
}
@ -1004,8 +1008,7 @@ start_cache_cmpl(ocf_cache_t cache, void *priv, int error)
if (error) {
SPDK_ERRLOG("Error %d during start cache %s, starting rollback\n",
error, vbdev->name);
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, error);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, error);
return;
}
@ -1061,8 +1064,7 @@ start_cache(struct vbdev_ocf *vbdev)
vbdev->cache_ctx = calloc(1, sizeof(struct vbdev_ocf_cache_ctx));
if (vbdev->cache_ctx == NULL) {
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, -ENOMEM);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, -ENOMEM);
return;
}
@ -1071,8 +1073,7 @@ start_cache(struct vbdev_ocf *vbdev)
rc = ocf_mngt_cache_start(vbdev_ocf_ctx, &vbdev->ocf_cache, &vbdev->cfg.cache);
if (rc) {
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, rc);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, rc);
return;
}
@ -1081,8 +1082,7 @@ start_cache(struct vbdev_ocf *vbdev)
rc = create_management_queue(vbdev);
if (rc) {
SPDK_ERRLOG("Unable to create mngt_queue: %d\n", rc);
clear_starting_indicator_vbdev(vbdev);
vbdev_ocf_mngt_stop(vbdev, unregister_path_dirty, rc);
vbdev_ocf_mngt_exit(vbdev, unregister_path_dirty, rc);
return;
}