From 3f355da360d9c42ee4311f48483c0a77f35a62ca Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Fri, 20 Feb 2009 18:04:11 +0000 Subject: [PATCH] Fix for bug reported by Gennadiy Nerubayev . In some cases, e.g. with DRBD, bio->bi_end_io() can be called with IRQs disable which isn't appropriate for direct processing in SCST core. Switch to one of internal SCST threads in such cases. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@678 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/dev_handlers/scst_vdisk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 418cf3eaa..d7e581329 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -2338,7 +2338,7 @@ static inline void blockio_check_finish(struct scst_blockio_work *blockio_work) if (atomic_dec_and_test(&blockio_work->bios_inflight)) { blockio_work->cmd->completed = 1; blockio_work->cmd->scst_cmd_done(blockio_work->cmd, - SCST_CMD_STATE_DEFAULT, SCST_CONTEXT_DIRECT_ATOMIC); + SCST_CMD_STATE_DEFAULT, scst_estimate_context()); kmem_cache_free(blockio_work_cachep, blockio_work); } return;