Bug fixes:
authorbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Sat, 28 Nov 2009 14:03:55 +0000 (14:03 +0000)
committerbvassche <bvassche@d57e44dd-8a1f-0410-8b47-8ef2f437770f>
Sat, 28 Nov 2009 14:03:55 +0000 (14:03 +0000)
commitf632ba5ff5ec3b9fc3bc6ec3e5b43f8cc39c3b49
treeaf53dc231a4d1e27c662c1355956ba919b681ac6
parentc544b55f8a04b8859312f893b3b023278d6bceb1
Bug fixes:
- Fixed races on srpt_ioctx::state manipulation by declaring this variable
  atomic.
- Fixed races on srpt_rdma_ch::state manipulation by declaring this variable
  atomic.
- Fixed bug in srpt_abort_scst_cmd(): SRPT_STATE_DATA_IN was not yet handled.
- Fixed races on srpt_rdma_ch::cm_id destruction. Clearly documented which
  object owns the cm_id at which time.
Performance improvements:
- Eliminated the list of active commands (active_scmnd_list) because this
  list was a duplicated of a list already kept by the SCST core.
- Switched to double-checked locking in srpt_handle_new_iu(). This saves one
  spin_lock_irqsave() and one spin_unlock_irqrestore() call in the common
  case (that is, a live channel).
- Eliminated RDMA channel state tests in SCST command handling callback
  functions -- removed the function srpt_abort_if_disconnecting().

git-svn-id: https://scst.svn.sourceforge.net/svnroot/scst/trunk@1367 d57e44dd-8a1f-0410-8b47-8ef2f437770f
srpt/src/ib_srpt.c
srpt/src/ib_srpt.h