Handle all io on bio handler

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
Robert Baldyga
2021-05-17 17:02:38 +02:00
parent fbc3906576
commit 7343cb55fa
14 changed files with 374 additions and 180 deletions

View File

@@ -903,8 +903,7 @@ void cas_atomic_submit_io(struct ocf_io *io)
{
CAS_DEBUG_TRACE();
if (!CAS_IS_WRITE_FLUSH_FUA(io->flags) &&
CAS_IS_WRITE_FLUSH(io->flags)) {
if (CAS_IS_SET_FLUSH(io->flags)) {
/* FLUSH */
cas_atomic_submit_flush(io);
return;
@@ -953,8 +952,8 @@ void cas_atomic_close_object(ocf_volume_t volume)
{
struct bd_object *bdobj = bd_object(volume);
if(bdobj->workqueue)
destroy_workqueue(bdobj->workqueue);
if(bdobj->btm_wq)
destroy_workqueue(bdobj->btm_wq);
block_dev_close_object(volume);
}
@@ -976,8 +975,8 @@ int cas_atomic_open_object(ocf_volume_t volume, void *volume_params)
memcpy(&bdobj->atomic_params, volume_params,
sizeof(bdobj->atomic_params));
bdobj->workqueue = create_workqueue("CAS_AT_ZER");
if (!bdobj->workqueue) {
bdobj->btm_wq = create_workqueue("CAS_AT_ZER");
if (!bdobj->btm_wq) {
cas_atomic_close_object(volume);
result = -ENOMEM;
goto end;
@@ -1036,7 +1035,7 @@ static void _cas_atomic_write_zeroes_step_cmpl(struct ocf_io *io, int error)
_cas_atomic_write_zeroes_end(ctx, error);
} else {
/* submit next IO from work context */
queue_work(bdobj->workqueue, &ctx->cmpl_work);
queue_work(bdobj->btm_wq, &ctx->cmpl_work);
}
}