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

lib/iscsi: Add real callback for DATAIN PDU complete



Since only after DATAIN pdu sending out, we can have
free slot to handle queued data in tasks.

Signed-off-by: default avatarZiye Yang <ziye.yang@intel.com>
Change-Id: I49a52597e8660453ea90c5960d020eb53f81265d
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/482048


Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 098d3227
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -313,7 +313,6 @@ spdk_iscsi_conn_free_pdu(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pd

	if (pdu->task) {
		spdk_iscsi_task_put(pdu->task);
		spdk_iscsi_conn_handle_queued_datain_tasks(conn);
	}
	spdk_put_pdu(pdu);

+9 −1
Original line number Diff line number Diff line
@@ -2881,6 +2881,14 @@ get_transfer_task(struct spdk_iscsi_conn *conn, uint32_t transfer_tag)
	return NULL;
}

static void
spdk_iscsi_conn_datain_pdu_complete(void *arg)
{
	struct spdk_iscsi_conn *conn = arg;

	spdk_iscsi_conn_handle_queued_datain_tasks(conn);
}

static int
iscsi_send_datain(struct spdk_iscsi_conn *conn,
		  struct spdk_iscsi_task *task, int datain_flag,
@@ -2983,7 +2991,7 @@ iscsi_send_datain(struct spdk_iscsi_conn *conn,
		}
	}

	spdk_iscsi_conn_write_pdu(conn, rsp_pdu, spdk_iscsi_conn_pdu_generic_complete, NULL);
	spdk_iscsi_conn_write_pdu(conn, rsp_pdu, spdk_iscsi_conn_datain_pdu_complete, conn);

	return DataSN;
}