diff options
Diffstat (limited to 'net/sunrpc/xprtsock.c')
-rw-r--r-- | net/sunrpc/xprtsock.c | 6 |
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); |
927 | out_clear: | 927 | out_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, |