From a9edd884958ced1bb5886a5dded22f6ce2bc972f Mon Sep 17 00:00:00 2001 From: Julian Anastasov Date: Wed, 5 Sep 2012 10:53:18 +0000 Subject: [PATCH] --- yaml --- r: 322749 b: refs/heads/master c: d013ef2aba8fe765ca683598e404203215632373 h: refs/heads/master i: 322747: 914b595be9bd5267b414e296bfb99e1ffde8ebe9 v: v3 --- [refs] | 2 +- trunk/net/ipv6/tcp_ipv6.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 0bb2f197cf70..02fdab571dee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 463dde19a759949c96d1c9da9efbb3a9b3a9eb61 +refs/heads/master: d013ef2aba8fe765ca683598e404203215632373 diff --git a/trunk/net/ipv6/tcp_ipv6.c b/trunk/net/ipv6/tcp_ipv6.c index a3e60cc04a8a..acd32e3f1b68 100644 --- a/trunk/net/ipv6/tcp_ipv6.c +++ b/trunk/net/ipv6/tcp_ipv6.c @@ -403,8 +403,9 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, tp->mtu_info = ntohl(info); if (!sock_owned_by_user(sk)) tcp_v6_mtu_reduced(sk); - else - set_bit(TCP_MTU_REDUCED_DEFERRED, &tp->tsq_flags); + else if (!test_and_set_bit(TCP_MTU_REDUCED_DEFERRED, + &tp->tsq_flags)) + sock_hold(sk); goto out; }