]> asedeno.scripts.mit.edu Git - linux.git/commit
svcrdma: Enqueue after setting XPT_CLOSE in completion handlers
authorChuck Lever <chuck.lever@oracle.com>
Fri, 27 Oct 2017 14:49:51 +0000 (10:49 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 7 Nov 2017 21:44:02 +0000 (16:44 -0500)
commit77a08867a66796f8316449e030e0bfc84f2a3f66
tree6b6155101bd0462b3fae131576a4080a79b7df8b
parent7e981a8afa6d8d1d93e2b3d162aa81cc7b537208
svcrdma: Enqueue after setting XPT_CLOSE in completion handlers

I noticed the server was sometimes not closing the connection after
a flushed Send. For example, if the client responds with an RNR NAK
to a Reply from the server, that client might be deadlocked, and
thus wouldn't send any more traffic. Thus the server wouldn't have
any opportunity to notice the XPT_CLOSE bit has been set.

Enqueue the transport so that svcxprt notices the bit even if there
is no more transport activity after a flushed completion, QP access
error, or device removal event.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-By: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/xprtrdma/svc_rdma_transport.c