diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/udp.c | 2 | ||||
-rw-r--r-- | net/ipv6/udp.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 6d6142f9c478..865d75214a9a 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -675,6 +675,8 @@ do_append_data: | |||
675 | udp_flush_pending_frames(sk); | 675 | udp_flush_pending_frames(sk); |
676 | else if (!corkreq) | 676 | else if (!corkreq) |
677 | err = udp_push_pending_frames(sk, up); | 677 | err = udp_push_pending_frames(sk, up); |
678 | else if (unlikely(skb_queue_empty(&sk->sk_write_queue))) | ||
679 | up->pending = 0; | ||
678 | release_sock(sk); | 680 | release_sock(sk); |
679 | 681 | ||
680 | out: | 682 | out: |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 552ec0f449af..e0c3934a7e4b 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -770,6 +770,8 @@ do_append_data: | |||
770 | udp_v6_flush_pending_frames(sk); | 770 | udp_v6_flush_pending_frames(sk); |
771 | else if (!corkreq) | 771 | else if (!corkreq) |
772 | err = udp_v6_push_pending_frames(sk, up); | 772 | err = udp_v6_push_pending_frames(sk, up); |
773 | else if (unlikely(skb_queue_empty(&sk->sk_write_queue))) | ||
774 | up->pending = 0; | ||
773 | 775 | ||
774 | if (dst) { | 776 | if (dst) { |
775 | if (connected) { | 777 | if (connected) { |