- status = xs_tcp_finish_connecting(xprt, sock);
- dprintk("RPC: %p connect status %d connected %d sock state %d\n",
- xprt, -status, xprt_connected(xprt), sock->sk->sk_state);
- switch (status) {
- case -ECONNREFUSED:
- case -ECONNRESET:
- case -ENETUNREACH:
- /* retry with existing socket, after a delay */
- case 0:
- case -EINPROGRESS:
- case -EALREADY:
- xprt_clear_connecting(xprt);
- return;
- }
- /* get rid of existing socket, and retry */
- xs_tcp_shutdown(xprt);
- printk("%s: connect returned unhandled error %d\n",
- __func__, status);
-out_eagain:
- status = -EAGAIN;
-out:
- xprt_clear_connecting(xprt);
- xprt_wake_pending_tasks(xprt, status);