aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorSagi Grimberg <sagig@mellanox.com>2014-12-07 16:10:00 +0200
committerRoland Dreier <roland@purestorage.com>2014-12-15 18:11:44 -0800
commitf0caef6d407bf0fc8dfba5cddf7318170187f194 (patch)
treed034482f20fc277ffb5df5174a59e3d96313a3f4 /drivers/infiniband
parentIB/iser: Fix race between iser connection teardown and scsi TMFs (diff)
downloadlinux-dev-f0caef6d407bf0fc8dfba5cddf7318170187f194.tar.xz
linux-dev-f0caef6d407bf0fc8dfba5cddf7318170187f194.zip
IB/iser: Terminate connection before cleaning inflight tasks
When closing the connection, we should first terminate the connection (in case it was not previously terminated) to guarantee the QP is in error state and we are done with servicing IO. Only then go ahead with tasks cleanup via iscsi_conn_stop. Signed-off-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index bca97dcf0b4e..0af32cdb34a1 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -541,8 +541,8 @@ iscsi_iser_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
*/
if (iser_conn) {
mutex_lock(&iser_conn->state_mutex);
- iscsi_conn_stop(cls_conn, flag);
iser_conn_terminate(iser_conn);
+ iscsi_conn_stop(cls_conn, flag);
/* unbind */
iser_conn->iscsi_conn = NULL;