for iscsi reconnect flow the sequence of calls would be conn stop/bind/start
i.e conn create is not called; fixed the post receive code to take that into
account, also moved setting conn->recv_lock into conn bind which is called for
both connect and reconnect flows.

Signed-off-by: Erez Zilber <[EMAIL PROTECTED]>
Signed-off-by: Or Gerlitz  <[EMAIL PROTECTED]>

Index: infiniband-git/drivers/infiniband/ulp/iser/iscsi_iser.c
===================================================================
--- infiniband-git.orig/drivers/infiniband/ulp/iser/iscsi_iser.c        
2006-06-20 12:27:42.000000000 +0300
+++ infiniband-git/drivers/infiniband/ulp/iser/iscsi_iser.c     2006-06-20 
12:28:14.000000000 +0300
@@ -311,8 +311,6 @@
        /* currently this is the only field which need to be initiated */
        rwlock_init(&iser_conn->lock);

-       conn->recv_lock = &iser_conn->lock;
-
        conn->dd_data = iser_conn;
        iser_conn->iscsi_conn = conn;

@@ -363,6 +361,8 @@
        ib_conn->iser_conn = iser_conn;
        iser_conn->ib_conn  = ib_conn;

+       conn->recv_lock = &iser_conn->lock;
+
        return 0;
 }

Index: infiniband-git/drivers/infiniband/ulp/iser/iser_initiator.c
===================================================================
--- infiniband-git.orig/drivers/infiniband/ulp/iser/iser_initiator.c    
2006-06-20 12:27:42.000000000 +0300
+++ infiniband-git/drivers/infiniband/ulp/iser/iser_initiator.c 2006-06-20 
12:28:14.000000000 +0300
@@ -232,8 +232,11 @@
        }
        rx_desc->type = ISCSI_RX;

-       /* for the login sequence we must support rx of upto 8K */
-       if (conn->c_stage == ISCSI_CONN_INITIAL_STAGE)
+       /* for the login sequence we must support rx of upto 8K; login is done
+        * after conn create/bind (connect) and conn stop/bind (reconnect),
+        * what's common for both schemes is that the connection is not started
+        */
+       if (conn->c_stage != ISCSI_CONN_STARTED)
                rx_data_size = DEFAULT_MAX_RECV_DATA_SEGMENT_LENGTH;
        else /* FIXME till user space sets conn->max_recv_dlength correctly */
                rx_data_size = 128;


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to