From 23a9e8e1e6af9551db762f8f413c6f69f8fb0531 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sun, 17 Nov 2019 19:20:47 +0000 Subject: [PATCH] scst_vdisk, async file I/O: Report residuals instead of triggering two kernel warnings git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8660 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/dev_handlers/scst_vdisk.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index afaf0cce5..c9485c9b4 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -3190,7 +3190,8 @@ static void fileio_async_complete(struct kiocb *iocb, long ret, long ret2) struct vdisk_cmd_params *p = container_of(iocb, typeof(*p), async.iocb); struct scst_cmd *cmd = p->cmd; - WARN_ON_ONCE(ret >= 0 && ret != cmd->bufflen); + if (ret >= 0 && ret != cmd->bufflen) + scst_set_resp_data_len(cmd, ret); if (ret < 0 && scst_cmd_get_data_direction(cmd) & SCST_DATA_WRITE) { @@ -3211,8 +3212,6 @@ static void fileio_async_complete(struct kiocb *iocb, long ret, long ret2) } else { scst_set_busy(cmd); } - } else { - WARN_ON_ONCE(ret != scst_cmd_get_data_len(cmd)); } cmd->completed = 1; cmd->scst_cmd_done(cmd, SCST_CMD_STATE_DEFAULT, SCST_CONTEXT_SAME);