+2
−1
+0
−2
Loading
This patch move the spdk_iscsi_conn_handle_queued_tasks() to the main loop of connection poller, make the logic more clear, it will also fix one issue of hotplug: for large read command, it has the potential risk: one task will be split into N subtaks, when primary task return error and try to send data in pdu, it will call spdk_iscsi_conn_handle_queued_tasks(), the primary task is pending now, and all the subtasks will return error from lun layer synchronous, this make the primary task return from the function spdk_iscsi_transfer_in() after all the other subtaks, but when the N - 1 subtask return from function spdk_iscsi_transfer_in(), it meet the condition: primary->bytes_completed == primary->scsi.transfer_len then it will send response pdu, after this, the primary task return from spdk_iscsi_transfer_in(), it also meet the condition, so it will also try to send response pdu, this will make the application run into error. Change-Id: I72206c1ce303f5fb6bd650713742d5819a88a30f Signed-off-by:Cunyin Chang <cunyin.chang@intel.com> Reviewed-on: https://review.gerrithub.io/370339 Tested-by:
SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by:
Ben Walker <benjamin.walker@intel.com> Reviewed-by:
Daniel Verkamp <daniel.verkamp@intel.com>