summaryrefslogtreecommitdiff
path: root/net/sunrpc
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2015-08-17 13:36:22 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2015-08-17 13:36:22 -0500
commit37bfcc14b2b44ce03930eeb2c3de1c20f7da6fb9 (patch)
tree7a83a146def660cebc6d965b876af1995035e16e /net/sunrpc
parenteed889b161ce4817e594c28906269d776f4806a5 (diff)
parent99b1a4c32ad22024ac6198a4337aaec5ea23168f (diff)
Merge branch 'bugfixes'
* bugfixes: SUNRPC: Fix a thinko in xs_connect() NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked() NFS: nfs_set_pgio_error sometimes misses errors
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/xprtsock.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 0030376327b7..86ed778bb18b 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -2279,13 +2279,14 @@ static void xs_connect(struct rpc_xprt *xprt, struct rpc_task *task)
WARN_ON_ONCE(!xprt_lock_connect(xprt, task, transport));
- /* Start by resetting any existing state */
- xs_reset_transport(transport);
-
- if (transport->sock != NULL && !RPC_IS_SOFTCONN(task)) {
+ if (transport->sock != NULL) {
dprintk("RPC: xs_connect delayed xprt %p for %lu "
"seconds\n",
xprt, xprt->reestablish_timeout / HZ);
+
+ /* Start by resetting any existing state */
+ xs_reset_transport(transport);
+
queue_delayed_work(rpciod_workqueue,
&transport->connect_worker,
xprt->reestablish_timeout);