From 0030ebdecc894246d36a72e3f10c9737f97c7087 Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Wed, 8 Jun 2022 10:00:35 +0200 Subject: [PATCH] Handle already opened volume in volume open Volumes are now exposed in OCF API and we should gracefully handle attempt to open already opened volume (instead of ENV_BUG). Signed-off-by: Adam Rutkowski --- src/ocf_volume.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ocf_volume.c b/src/ocf_volume.c index f335ece..4ae8321 100644 --- a/src/ocf_volume.c +++ b/src/ocf_volume.c @@ -327,8 +327,10 @@ int ocf_volume_open(ocf_volume_t volume, void *volume_params) { int ret; + if (volume->opened) + return -OCF_ERR_NOT_OPEN_EXC; + ENV_BUG_ON(!volume->type->properties->ops.open); - ENV_BUG_ON(volume->opened); ret = volume->type->properties->ops.open(volume, volume_params); if (ret) @@ -352,7 +354,9 @@ void ocf_volume_close(ocf_volume_t volume) env_completion cmpl; ENV_BUG_ON(!volume->type->properties->ops.close); - ENV_BUG_ON(!volume->opened); + + if (!volume->opened) + return; env_completion_init(&cmpl); ocf_refcnt_freeze(&volume->refcnt);