diff options
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r-- | net/sunrpc/xprt.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 18415cc37c01..c71d835165e2 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
@@ -712,10 +712,14 @@ void xprt_connect(struct rpc_task *task) | |||
712 | 712 | ||
713 | task->tk_timeout = xprt->connect_timeout; | 713 | task->tk_timeout = xprt->connect_timeout; |
714 | rpc_sleep_on(&xprt->pending, task, xprt_connect_status); | 714 | rpc_sleep_on(&xprt->pending, task, xprt_connect_status); |
715 | |||
716 | if (test_bit(XPRT_CLOSING, &xprt->state)) | ||
717 | return; | ||
718 | if (xprt_test_and_set_connecting(xprt)) | ||
719 | return; | ||
715 | xprt->stat.connect_start = jiffies; | 720 | xprt->stat.connect_start = jiffies; |
716 | xprt->ops->connect(task); | 721 | xprt->ops->connect(task); |
717 | } | 722 | } |
718 | return; | ||
719 | } | 723 | } |
720 | 724 | ||
721 | static void xprt_connect_status(struct rpc_task *task) | 725 | static void xprt_connect_status(struct rpc_task *task) |