From 4ac128b9a2c7b0e63a384a5b0f38896102aff40f Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Tue, 3 Oct 2006 14:35:49 -0700 Subject: [PATCH] --- yaml --- r: 38558 b: refs/heads/master c: 1e0c14f49d6b393179f423abbac47f85618d3d46 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/udp.c | 2 ++ trunk/net/ipv6/udp.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index db6baacaac8a..6ba1eba40323 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 132a55f3c5c0b1a364d32f65595ad8838c30a60e +refs/heads/master: 1e0c14f49d6b393179f423abbac47f85618d3d46 diff --git a/trunk/net/ipv4/udp.c b/trunk/net/ipv4/udp.c index 6d6142f9c478..865d75214a9a 100644 --- a/trunk/net/ipv4/udp.c +++ b/trunk/net/ipv4/udp.c @@ -675,6 +675,8 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, udp_flush_pending_frames(sk); else if (!corkreq) err = udp_push_pending_frames(sk, up); + else if (unlikely(skb_queue_empty(&sk->sk_write_queue))) + up->pending = 0; release_sock(sk); out: diff --git a/trunk/net/ipv6/udp.c b/trunk/net/ipv6/udp.c index 552ec0f449af..e0c3934a7e4b 100644 --- a/trunk/net/ipv6/udp.c +++ b/trunk/net/ipv6/udp.c @@ -770,6 +770,8 @@ static int udpv6_sendmsg(struct kiocb *iocb, struct sock *sk, udp_v6_flush_pending_frames(sk); else if (!corkreq) err = udp_v6_push_pending_frames(sk, up); + else if (unlikely(skb_queue_empty(&sk->sk_write_queue))) + up->pending = 0; if (dst) { if (connected) {