]> git.baikalelectronics.ru Git - kernel.git/commit
[SCSI] iser: fix handling of scsi cmnds during recovery.
authorMike Christie <michaelc@cs.wisc.edu>
Wed, 21 May 2008 20:54:03 +0000 (15:54 -0500)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 12 Jul 2008 13:22:17 +0000 (08:22 -0500)
commit38e46ede89ec7fe14e682ffd10af2f7deb0ba017
treedfbe7909a066c974f16403e25f687496dde7fb0a
parentb4ccbe8613dd30209164753ddf0b567a5addb0e8
[SCSI] iser: fix handling of scsi cmnds during recovery.

After the stop_conn callback has returned the LLD should not
touch the scsi cmds. iscsi_tcp and libiscsi use the
conn->recv_lock and suspend_rx field to halt recv path
processing, but iser does not have any protection.

This patch modifies iser so that userspace can just
call the ep_disconnect callback, which will halt
all recv IO, before calling the stop_conn callback so
we do not have to worry about the conn->recv_lock and
suspend rx field. iser just needs to stop the send side
from accessing the ib conn.

Fixup to handle when the ep poll fails and ep disconnect
is called from Erez.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/infiniband/ulp/iser/iscsi_iser.c
drivers/infiniband/ulp/iser/iscsi_iser.h
drivers/infiniband/ulp/iser/iser_verbs.c
drivers/scsi/libiscsi.c