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) { |
