Commit 143692d1 authored by Ziye Yang's avatar Ziye Yang Committed by Jim Harris
Browse files

iscsi: handle the corner case while partial read is failed



Change-Id: If2ba687d49bd5e282c3a5f8516760859376dc658
Signed-off-by: default avatarZiye Yang <ziye.yang@intel.com>
parent 2a3154bd
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -2700,6 +2700,20 @@ spdk_iscsi_transfer_in(struct spdk_iscsi_conn *conn,
	data_len = task->scsi.data_transferred;
	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) {
		/* underflow */
		SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Underflow %u/%u\n",