Messages in this thread Patch in this message | | | From | "Andy Chittenden" <> | Subject | [PATCH] [Bug 16494] NFS client over TCP hangs due to packet loss | Date | Tue, 3 Aug 2010 09:14:31 +0100 |
| |
I don't know whether this patch is the correct fix or not but it enables the NFS client to recover.
Kernel version: 2.6.34.1 and 2.6.32.
Fixes <https://bugzilla.kernel.org/show_bug.cgi?id=16494>. It clears down any previous shutdown attempts so that reconnects on a socket that's been shutdown leave the socket in a usable state (otherwise tcp_sendmsg() returns -EPIPE).
# diff -up /home/company/software/src/linux-2.6.34.1/net/ipv4/tcp_output.c net/ipv4 --- /home/company/software/src/linux-2.6.34.1/net/ipv4/tcp_output.c 2010-07-27 08:46:46.917000000 +0100 +++ net/ipv4/tcp_output.c 2010-07-27 09:19:16.000000000 +0100 @@ -2522,6 +2522,13 @@ static void tcp_connect_init(struct sock struct tcp_sock *tp = tcp_sk(sk); __u8 rcv_wscale;
+ /* clear down any previous shutdown attempts so that + * reconnects on a socket that's been shutdown leave the + * socket in a usable state (otherwise tcp_sendmsg() returns + * -EPIPE). + */ + sk->sk_shutdown = 0; + /* We'll fix this up when we get a response from the other end. * See tcp_input.c:tcp_rcv_state_process case TCP_SYN_SENT. */ Signed-off-by: Andy Chittenden <andyc.bluearc@gmail.com>
| |