-
- Downloads
iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED
commit b2cb9649 upstream. This patch addresses a bug where RDMA_CM_EVENT_DISCONNECTED may occur before the connection shutdown has been completed by rx/tx threads, that causes isert_free_conn() to wait indefinately on ->conn_wait. This patch allows isert_disconnect_work code to invoke rdma_disconnect when isert_disconnect_work() process context is started by client session reset before isert_free_conn() code has been reached. It also adds isert_conn->conn_mutex protection for ->state within isert_disconnect_work(), isert_cq_comp_err() and isert_free_conn() code, along with isert_check_state() for wait_event usage. (v2: Add explicit iscsit_cause_connection_reinstatement call during isert_disconnect_work() to force conn reset) Cc: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by:Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
- drivers/infiniband/ulp/isert/ib_isert.c 60 additions, 10 deletionsdrivers/infiniband/ulp/isert/ib_isert.c
- drivers/infiniband/ulp/isert/ib_isert.h 1 addition, 0 deletionsdrivers/infiniband/ulp/isert/ib_isert.h
- drivers/target/iscsi/iscsi_target_erl0.c 1 addition, 0 deletionsdrivers/target/iscsi/iscsi_target_erl0.c
- include/target/iscsi/iscsi_transport.h 4 additions, 0 deletionsinclude/target/iscsi/iscsi_transport.h
Loading
Please register or sign in to comment