From: Ariel Nahum Date: Sun, 18 Jan 2015 14:51:07 +0000 (+0200) Subject: IB/iser: Release the iscsi endpoint if ep_disconnect wasn't called X-Git-Tag: rdma-for-linus^3 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=9a3119e4b787d8c855202eb0388b213f86f88714;p=~emulex%2Finfiniband.git IB/iser: Release the iscsi endpoint if ep_disconnect wasn't called In some cases, we might reach the iser connection termination without ep_disconnect being invoked (for example if user-space daemon doesn't exists. In this case, we need to free the iscsi endpoint when we remove the iser connection. Signed-off-by: Ariel Nahum Signed-off-by: Sagi Grimberg Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c index f3e21abc20a..4065abe2882 100644 --- a/drivers/infiniband/ulp/iser/iser_verbs.c +++ b/drivers/infiniband/ulp/iser/iser_verbs.c @@ -646,9 +646,11 @@ void iser_conn_release(struct iser_conn *iser_conn) mutex_unlock(&ig.connlist_mutex); mutex_lock(&iser_conn->state_mutex); + /* In case we endup here without ep_disconnect being invoked. */ if (iser_conn->state != ISER_CONN_DOWN) { iser_warn("iser conn %p state %d, expected state down.\n", iser_conn, iser_conn->state); + iscsi_destroy_endpoint(iser_conn->ep); iser_conn->state = ISER_CONN_DOWN; } /*