SVCRDMA: Add xprt refs to fix close/unmount crash
authorTom Tucker <tom@opengridcomputing.com>
Tue, 11 Mar 2008 18:31:39 +0000 (14:31 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 12 Mar 2008 19:37:34 +0000 (12:37 -0700)
commitc48cbb405c4f338ce3263c44d621eff41d9a95fc
tree9b40ce571009d8acae6b1023b5e50247d3f33d15
parentee27a558ae0ff5063ccd6c47ca102c0bb0e3ba27
SVCRDMA: Add xprt refs to fix close/unmount crash

RDMA connection shutdown on an SMP machine can cause a kernel crash due
to the transport close path racing with the I/O tasklet.

Additional transport references were added as follows:
- A reference when on the DTO Q to avoid having the transport
  deleted while queued for I/O.
- A reference while there is a QP able to generate events.
- A reference until the DISCONNECTED event is received on the CM ID

Signed-off-by: Tom Tucker <tom@opengridcomputing.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
net/sunrpc/xprtrdma/svc_rdma_transport.c