SUNRPC: Don't wake tasks during connection abort
authorBenjamin Coddington <bcodding@redhat.com>
Tue, 23 Sep 2014 16:26:19 +0000 (12:26 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 25 Sep 2014 03:06:56 +0000 (23:06 -0400)
When aborting a connection to preserve source ports, don't wake the task in
xs_error_report.  This allows tasks with RPC_TASK_SOFTCONN to succeed if the
connection needs to be re-established since it preserves the task's status
instead of setting it to the status of the aborting kernel_connect().

This may also avoid a potential conflict on the socket's lock.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Cc: stable@vger.kernel.org # 3.14+
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
include/linux/sunrpc/xprt.h
net/sunrpc/xprtsock.c

index fcbfe87..cf391ee 100644 (file)
@@ -357,6 +357,7 @@ int                 xs_swapper(struct rpc_xprt *xprt, int enable);
 #define XPRT_CONNECTION_ABORT  (7)
 #define XPRT_CONNECTION_CLOSE  (8)
 #define XPRT_CONGESTED         (9)
+#define XPRT_CONNECTION_REUSE  (10)
 
 static inline void xprt_set_connected(struct rpc_xprt *xprt)
 {
Simple merge