From 6e4e85dcef91e6793b554a5d15c72ba93e56a4ab Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 15 Nov 2019 14:09:36 +0900 Subject: [PATCH] lib/iscsi: Replace conn_free_pdu() by task_put() and put_pdu() in remove_acked_pdu() Due to recent refinement of primary/secondary task management, remove_acked_pdu() cannot use spdk_iscsi_conn_free_pdu(). As done in iscsi_conn_free_tasks(), we can replace spdk_iscsi_conn_free_pdu() by spdk_iscsi_task_put() and spdk_put_pdu() and we do that in this patch. Signed-off-by: Shuhei Matsumoto Change-Id: I9f83569becfc6e9440fb859709f04b6123674f25 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/474438 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/iscsi/iscsi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c index e2912ebaa..35bb4e956 100644 --- a/lib/iscsi/iscsi.c +++ b/lib/iscsi/iscsi.c @@ -4571,7 +4571,10 @@ remove_acked_pdu(struct spdk_iscsi_conn *conn, uint32_t ExpStatSN) stat_sn = from_be32(&pdu->bhs.stat_sn); if (SN32_LT(stat_sn, conn->exp_statsn)) { TAILQ_REMOVE(&conn->snack_pdu_list, pdu, tailq); - spdk_iscsi_conn_free_pdu(conn, pdu); + if (pdu->task) { + spdk_iscsi_task_put(pdu->task); + } + spdk_put_pdu(pdu); } } }