fbb59ae25a
After I review the function iscsi_conn_flush_pdus_internal, I think that it may cause recursive function call issue. One of the recursive calls in iscsi_conn_flush_pdus_internal is: spdk_iscsi_conn_free_pdu spdk_iscsi_conn_handle_queued_datain_tasks ... spdk_iscsi_task_cpl(&task->scsi); ... process_read_task_completion spdk_iscsi_task_response iscsi_transfer_in iscsi_send_datain spdk_iscsi_conn_write_pdu iscsi_conn_flush_pdus iscsi_conn_flush_pdus_internal So we have to create another list to solve this recursive issue in the while loop. And we face the the similar issue in NVMe/TCP before. With this patch, we can fix issues caused by recursive calls. Fixes #issue 1023 Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: I7150b962bfb30e74f53ba1a2a826fb78c73d8ea6 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472999 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> |
||
---|---|---|
.. | ||
conn.c | ||
conn.h | ||
init_grp.c | ||
init_grp.h | ||
iscsi_rpc.c | ||
iscsi_subsystem.c | ||
iscsi.c | ||
iscsi.h | ||
Makefile | ||
md5.c | ||
md5.h | ||
param.c | ||
param.h | ||
portal_grp.c | ||
portal_grp.h | ||
task.c | ||
task.h | ||
tgt_node.c | ||
tgt_node.h |