+67
−35
Loading
To use zero copy bdev I/O APIs, we have to allocate iSCSI task before allocating data buffer. Hence we separate PDU header and payload handling for SCSI Data-Out, and include iSCSI task allocation into PDU header handling. Factor out PDU header handling in iscsi_op_data() into iscsi_pdu_hdr_op_data(). spdk_nvmf_tcp_h2c_data_hdr_handle() and spdk_nvmf_tcp_h2c_data_payload_handle() in lib/nvmf/tcp.c are used as a reference implementation. Use pdu->task to pass the task allocated by iscsi_pdu_hdr_op_data() into iscsi_op_data(). In iscsi_op_data(), if it sees pdu->is_rejected is true or pdu->task is NULL, do nothing. Besides, check LUN hot plug again to separate PDU header handling and PDU payload handling. Signed-off-by:Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I5074e945254081960744577e4ed8e0170793e5e0 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470291 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com> Reviewed-by:
Ben Walker <benjamin.walker@intel.com> Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>