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
This commit is contained in:
Bart Van Assche
2019-11-17 19:20:47 +00:00
parent c6c6a94965
commit 23a9e8e1e6
+2 -3
View File
@@ -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);