1. 16 12月, 2014 2 次提交
  2. 09 10月, 2014 13 次提交
  3. 23 9月, 2014 1 次提交
  4. 02 8月, 2014 8 次提交
  5. 26 5月, 2014 2 次提交
    • A
      IB/iser: Fix a possible race in iser connection states transition · 66d4e62d
      Ariel Nahum 提交于
      In some circumstances (multiple targets), RDMA_CM ESTABLISHED event
      and ep_disconnect may race. In this case, the iser connection state
      may transition to UP (after ep_disconnect transitioned it to
      TERMINATING), while the connection is being torn down.
      
      Upon RDMA_CM event ESTABLISHED we allow iser connection state to
      transition to UP only from PENDING. We also make sure to protect this
      state change (done under the connection lock).
      Signed-off-by: NAriel Nahum <arieln@mellanox.com>
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Reviewed-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      66d4e62d
    • A
      IB/iser: Simplify connection management · b73c3ada
      Ariel Nahum 提交于
      iSER relies on refcounting to manage iser connections establishment
      and teardown.
      
      Following commit 39ff05db ("IB/iser: Enhance disconnection logic
      for multi-pathing"), iser connection maintain 3 references:
      
       - iscsi_endpoint (at creation stage)
       - cma_id (at connection request stage)
       - iscsi_conn (at bind stage)
      
      We can avoid taking explicit refcounts by correctly serializing iser
      teardown flows (graceful and non-graceful).
      
      Our approach is to trigger a scheduled work to handle ordered teardown
      by gracefully waiting for 2 cleanup stages to complete:
      
       1. Cleanup of live pending tasks indicated by iscsi_conn_stop completion
       2. Flush errors processing
      
      Each completed stage will notify a waiting worker thread when it is
      done to allow teardwon continuation.
      
      Since iSCSI connection establishment may trigger endpoint disconnect
      without a successful endpoint connect, we rely on the iscsi <-> iser
      binding (.conn_bind) to learn about the teardown policy we should take
      wrt cleanup stages.
      
      Since all cleanup worker threads are scheduled (release_wq) in
      .ep_disconnect it is safe to assume that when module_exit is called,
      all cleanup workers are already scheduled. Thus proper module unload
      shall flush all scheduled works before allowing safe exit, to
      guarantee no resources got left behind.
      Signed-off-by: NAriel Nahum <arieln@mellanox.com>
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Reviewed-by: NRoi Dayan <roid@mellanox.com>
      Reviewed-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      b73c3ada
  6. 02 4月, 2014 5 次提交
  7. 18 3月, 2014 8 次提交
  8. 15 2月, 2014 1 次提交