• David S. Miller's avatar
    [TCP]: Fix __tcp_push_pending_frames() 'nonagle' handling. · 55c97f3e
    David S. Miller authored
    'nonagle' should be passed to the tcp_snd_test() function
    as 'TCP_NAGLE_PUSH' if we are checking an SKB not at the
    tail of the write_queue.  This is because Nagle does not
    apply to such frames since we cannot possibly tack more
    data onto them.
    
    However, while doing this __tcp_push_pending_frames() makes
    all of the packets in the write_queue use this modified
    'nonagle' value.
    
    Fix the bug and simplify this function by just calling
    tcp_write_xmit() directly if sk_send_head is non-NULL.
    
    As a result, we can now make tcp_data_snd_check() just call
    tcp_push_pending_frames() instead of the specialized
    __tcp_data_snd_check().
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    55c97f3e
tcp_output.c 53.8 KB