• Chuck Lever's avatar
    [PATCH] sock_writeable not appropriate for TCP sockets, for 2.5.32 · d2279c44
    Chuck Lever authored
    sock_writeable determines whether there is space in a socket's output
    buffer.  socket write_space callbacks use it to determine whether to wake
    up those that are waiting for more output buffer space.
    
    however, sock_writeable is not appropriate for TCP sockets.  because the
    RPC layer's write_space callback uses it for TCP sockets, the RPC layer
    hammers on sock_sendmsg with dozens of write requests that are only a few
    hundred bytes long when it is trying to send a large write RPC request.
    this patch adds logic to the RPC layer's write_space callback that
    properly handles TCP sockets.
    
    patch reviewed by Trond and Alexey.
    d2279c44
xprt.c 35.5 KB