]> git.karo-electronics.de Git - karo-tx-linux.git/commit
iser-target: Rework connection termination
authorJenny Derzhavetz <jennyf@mellanox.com>
Wed, 24 Feb 2016 17:24:01 +0000 (19:24 +0200)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 5 Mar 2016 07:35:43 +0000 (23:35 -0800)
commitff93150093abaf0d6699f81d82ca392dccd7ddcb
tree4c985b2ca5e332bbe4df8c8b0a10093a29624410
parentcd7f94236eff1d939bae4567de7fd252461b6dbe
iser-target: Rework connection termination

When we receive an event that triggers connection termination,
we have a a couple of things we may want to do:
1. In case we are already terminating, bailout early
2. In case we are connected but not bound, disconnect and schedule
   a connection cleanup silently (don't reinstate)
3. In case we are connected and bound, disconnect and reinstate the connection

This rework fixes a bug that was detected against a mis-behaved
initiator which rejected our rdma_cm accept, in this stage the
isert_conn is no bound and reinstate caused a bogus dereference.

What's great about this is that we don't need the
post_recv_buf_count anymore, so get rid of it.

Signed-off-by: Jenny Derzhavetz <jennyf@mellanox.com>
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Cc: stable@vger.kernel.org # v3.10+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/infiniband/ulp/isert/ib_isert.c
drivers/infiniband/ulp/isert/ib_isert.h