iscsi: handle the corner case while partial read is failed
Change-Id: If2ba687d49bd5e282c3a5f8516760859376dc658 Signed-off-by: Ziye Yang <ziye.yang@intel.com>
This commit is contained in:
parent
2a3154bd87
commit
143692d18f
@ -2700,6 +2700,20 @@ spdk_iscsi_transfer_in(struct spdk_iscsi_conn *conn,
|
|||||||
data_len = task->scsi.data_transferred;
|
data_len = task->scsi.data_transferred;
|
||||||
transfer_len = task->scsi.length;
|
transfer_len = task->scsi.length;
|
||||||
|
|
||||||
|
if (task->scsi.status != SPDK_SCSI_STATUS_GOOD) {
|
||||||
|
if (task != primary) {
|
||||||
|
conn->data_in_cnt--;
|
||||||
|
} else {
|
||||||
|
/* handle the case that it is a primary task which has subtasks */
|
||||||
|
if (primary->scsi.transfer_len != task->scsi.length) {
|
||||||
|
conn->data_in_cnt--;
|
||||||
|
spdk_iscsi_task_put(task);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (data_len < transfer_len) {
|
if (data_len < transfer_len) {
|
||||||
/* underflow */
|
/* underflow */
|
||||||
SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Underflow %u/%u\n",
|
SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Underflow %u/%u\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user