mirror of https://gitee.com/openkylin/linux.git
defd884845
This patch addresses a couple of different hug shutdown issues related to wait_event() + isert_conn->state. First, it changes isert_conn->conn_wait + isert_conn->conn_wait_comp_err from waitqueues to completions, and sets ISER_CONN_TERMINATING from within isert_disconnect_work(). Second, it splits isert_free_conn() into isert_wait_conn() that is called earlier in iscsit_close_connection() to ensure that all outstanding commands have completed before continuing. Finally, it breaks isert_cq_comp_err() into seperate TX / RX related code, and adds logic in isert_cq_rx_comp_err() to wait for outstanding commands to complete before setting ISER_CONN_DOWN and calling complete(&isert_conn->conn_wait_comp_err). Acked-by: Sagi Grimberg <sagig@mellanox.com> Cc: Or Gerlitz <ogerlitz@mellanox.com> Cc: <stable@vger.kernel.org> #3.10+ Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
iscsi_target.c | ||
iscsi_target.h | ||
iscsi_target_auth.c | ||
iscsi_target_auth.h | ||
iscsi_target_configfs.c | ||
iscsi_target_configfs.h | ||
iscsi_target_core.h | ||
iscsi_target_datain_values.c | ||
iscsi_target_datain_values.h | ||
iscsi_target_device.c | ||
iscsi_target_device.h | ||
iscsi_target_erl0.c | ||
iscsi_target_erl0.h | ||
iscsi_target_erl1.c | ||
iscsi_target_erl1.h | ||
iscsi_target_erl2.c | ||
iscsi_target_erl2.h | ||
iscsi_target_login.c | ||
iscsi_target_login.h | ||
iscsi_target_nego.c | ||
iscsi_target_nego.h | ||
iscsi_target_nodeattrib.c | ||
iscsi_target_nodeattrib.h | ||
iscsi_target_parameters.c | ||
iscsi_target_parameters.h | ||
iscsi_target_seq_pdu_list.c | ||
iscsi_target_seq_pdu_list.h | ||
iscsi_target_stat.c | ||
iscsi_target_stat.h | ||
iscsi_target_tmr.c | ||
iscsi_target_tmr.h | ||
iscsi_target_tpg.c | ||
iscsi_target_tpg.h | ||
iscsi_target_tq.c | ||
iscsi_target_tq.h | ||
iscsi_target_transport.c | ||
iscsi_target_util.c | ||
iscsi_target_util.h |