diff options
-rw-r--r-- | net/ipv4/tcp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 45156be3abfd..a09fe253b917 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -1009,7 +1009,12 @@ new_segment: | |||
1009 | int merge = 0; | 1009 | int merge = 0; |
1010 | int i = skb_shinfo(skb)->nr_frags; | 1010 | int i = skb_shinfo(skb)->nr_frags; |
1011 | struct page *page = TCP_PAGE(sk); | 1011 | struct page *page = TCP_PAGE(sk); |
1012 | int off = TCP_OFF(sk); | 1012 | int off; |
1013 | |||
1014 | if (page && page_count(page) == 1) | ||
1015 | TCP_OFF(sk) = 0; | ||
1016 | |||
1017 | off = TCP_OFF(sk); | ||
1013 | 1018 | ||
1014 | if (skb_can_coalesce(skb, i, page, off) && | 1019 | if (skb_can_coalesce(skb, i, page, off) && |
1015 | off != PAGE_SIZE) { | 1020 | off != PAGE_SIZE) { |