• David S. Miller's avatar
    [TCP]: Unconditionally clear TCP_NAGLE_PUSH in skb_entail(). · 89ebd197
    David S. Miller authored
    Intention of this bit is to force pushing of the existing
    send queue when TCP_CORK or TCP_NODELAY state changes via
    setsockopt().
    
    But it's easy to create a situation where the bit never
    clears.  For example, if the send queue starts empty:
    
    1) set TCP_NODELAY
    2) clear TCP_NODELAY
    3) set TCP_CORK
    4) do small write()
    
    The current code will leave TCP_NAGLE_PUSH set after that
    sequence.  Unconditionally clearing the bit when new data
    is added via skb_entail() solves the problem.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    89ebd197
tcp.c 62.9 KB