[2.3.18ac7] TCP NFS / tcp_rcv_state_process

Peter Benie (pjb1008@cam.ac.uk)
Tue, 21 Sep 1999 15:10:06 +0100


I've just upgraded from 2.3.9 to 2.3.18ac7 and have found that TCP NFS
doesn't work any more. I haven't checked rigourously, but I belive the
problem was introduced in 2.3.15.

NFS hooks into the TCP code by rewriting the values of data_ready,
state_change and write_space in the struct sock. One of the changes in
patch-2.3.15 was to change which circumstances in which sk->state_change
is called.

In particular, when ipv4/tcp_input.c:tcp_rcv_state_process receives an
ack in state TCP_SYN_SENT, sk->state_change used to be called (unless
the socket was dead). After the change, sk->state_change is not called
so sunrpc/xprt.c:tcp_state_change is no longer notified when the
connection is established,

This causes sunprc/xprt.c:xprt_reconnect to always fail.

Peter Benie

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/