IB/srp: reduce lock coverage of command completion
authorBart Van Assche <bvanassche@acm.org>
Fri, 26 Nov 2010 19:50:09 +0000 (14:50 -0500)
committerDavid Dillow <dillowda@ornl.gov>
Mon, 10 Jan 2011 20:44:50 +0000 (15:44 -0500)
commit94a9174c630c8465ed9e97ecd242993429930c05
tree73ddbe0024d54bad543c90144576148b70922eea
parent76c75b258f1fe6abac6af2356989ad4d6518886e
IB/srp: reduce lock coverage of command completion

We only need the lock to cover list and credit manipulations, so push
those into srp_remove_req() and update the call chains.

We reorder the request removal and command completion in
srp_process_rsp() to avoid the SCSI mid-layer sending another command
before we've released our request and added any credits returned by the
target. This prevents us from returning HOST_BUSY unneccesarily.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
[ broken out, small cleanups, and modified to avoid potential extraneous
  HOST_BUSY returns by David Dillow ]
Signed-off-by: David Dillow <dillowda@ornl.gov>
drivers/infiniband/ulp/srp/ib_srp.c