[SCSI] ibmvscsi: Prevent IO during partner login
authorRobert Jennings <rcj@linux.vnet.ibm.com>
Tue, 30 Oct 2007 16:37:07 +0000 (11:37 -0500)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 3 Nov 2007 17:10:36 +0000 (12:10 -0500)
commit3c887e8a1a4553ae6263fc9490e33de213e3746f
tree38cf13ce92acd4740a74b12a37808650c83edca3
parent7e2b19fbc7b9c1fd8ee9c79b375fcedb69dd07c9
[SCSI] ibmvscsi: Prevent IO during partner login

By setting the request_limit in send_srp_login to 1 we allowed login
requests to be sent to the server adapter.  If this was not an initial
login, but was a login after a disconnect with the server, other I/O
requests could attempt to be processed before the login occured.  These
I/O requests would fail, sometimes resulting in filesystems getting
marked read-only.

To address this we can set the request_limit to 0 while doing the login
and add an exception where login requests, along with task management
events, are always passed to the server.

There is a case where the request_limit had already reached 0 would result
in all events being sent rather than returning SCSI_MLQUEUE_HOST_BUSY; this
has also been fixed by this patch.

Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/ibmvscsi/ibmvscsi.c