aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtsock.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc/xprtsock.c')
-rw-r--r--net/sunrpc/xprtsock.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index bc90caab6088..76a33b54f436 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -925,9 +925,7 @@ out:
925 else 925 else
926 rpc_wake_up(&xprt->pending); 926 rpc_wake_up(&xprt->pending);
927out_clear: 927out_clear:
928 smp_mb__before_clear_bit(); 928 xprt_clear_connecting(xprt);
929 clear_bit(XPRT_CONNECTING, &xprt->sockstate);
930 smp_mb__after_clear_bit();
931} 929}
932 930
933/** 931/**
@@ -940,7 +938,7 @@ static void xs_connect(struct rpc_task *task)
940{ 938{
941 struct rpc_xprt *xprt = task->tk_xprt; 939 struct rpc_xprt *xprt = task->tk_xprt;
942 940
943 if (!test_and_set_bit(XPRT_CONNECTING, &xprt->sockstate)) { 941 if (!xprt_test_and_set_connecting(xprt)) {
944 if (xprt->sock != NULL) { 942 if (xprt->sock != NULL) {
945 dprintk("RPC: xs_connect delayed xprt %p\n", xprt); 943 dprintk("RPC: xs_connect delayed xprt %p\n", xprt);
946 schedule_delayed_work(&xprt->sock_connect, 944 schedule_delayed_work(&xprt->sock_connect,