From b19c8f042865a470fb15180fa2cc4ef558d953eb Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 13 Feb 2019 06:20:26 +0000 Subject: [PATCH] scst_vdisk: Only execute commands with a data buffer asynchronously git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7925 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/dev_handlers/scst_vdisk.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index 04e5201a3..5c5baa22c 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -3241,7 +3241,15 @@ static bool do_fileio_async(const struct vdisk_cmd_params *p) struct scst_device *dev = cmd->dev; struct scst_vdisk_dev *virt_dev = dev->dh_priv; - return virt_dev->async && dev->dev_dif_mode == SCST_DIF_MODE_NONE; + if (!virt_dev->async || dev->dev_dif_mode != SCST_DIF_MODE_NONE) + return false; + switch (cmd->data_direction) { + case SCST_DATA_READ: + case SCST_DATA_WRITE: + return true; + default: + return false; + } } static bool vdisk_alloc_kvec(struct scst_cmd *cmd, struct vdisk_cmd_params *p)