From 029190afd884e25ae6043eab203d2e355fbc4a82 Mon Sep 17 00:00:00 2001 From: YOSHIFUJI Hideaki Date: Mon, 20 Mar 2006 16:58:48 -0800 Subject: [PATCH] --- yaml --- r: 22111 b: refs/heads/master c: d5315b500b68ea921fe05fe2cbc06bcae90ff615 h: refs/heads/master i: 22109: cfcacc4f720b9cb2b19781c3e8c38cc7f2a5dadf 22107: f987c03dbe0714a768a03a61e51e0e24af952aae 22103: 97f22c10be0989f40889afd9bd6f289cfd3130a5 22095: 8aa973e55cea998302afb575ee050bc783d4b024 22079: 7df66fb98d68861d76b2c582730576de4bb19f41 v: v3 --- [refs] | 2 +- trunk/net/ipv6/route.c | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index 69e7ffde75fb..f5b8992b6456 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 299d9939089126f764090a202f2d6c69934bcf66 +refs/heads/master: d5315b500b68ea921fe05fe2cbc06bcae90ff615 diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index 4a8cb041f075..1a326af18f28 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -1235,11 +1235,12 @@ void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr, 1. It is connected route. Action: COW 2. It is gatewayed route or NONEXTHOP route. Action: clone it. */ - if (!rt->rt6i_nexthop && !(rt->rt6i_flags & RTF_NONEXTHOP)) { + if (!rt->rt6i_nexthop && !(rt->rt6i_flags & RTF_NONEXTHOP)) nrt = rt6_alloc_cow(rt, daddr, saddr); - if (!nrt) - goto out; + else + nrt = rt6_alloc_clone(rt, daddr); + if (nrt) { nrt->u.dst.metrics[RTAX_MTU-1] = pmtu; if (allfrag) nrt->u.dst.metrics[RTAX_FEATURES-1] |= RTAX_FEATURE_ALLFRAG; @@ -1254,18 +1255,7 @@ void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr, nrt->rt6i_flags |= RTF_DYNAMIC|RTF_EXPIRES; ip6_ins_rt(nrt, NULL, NULL, NULL); - } else { - nrt = rt6_alloc_clone(rt, daddr); - if (!nrt) - goto out; - dst_set_expires(&nrt->u.dst, ip6_rt_mtu_expires); - nrt->rt6i_flags |= RTF_DYNAMIC|RTF_EXPIRES; - nrt->u.dst.metrics[RTAX_MTU-1] = pmtu; - if (allfrag) - nrt->u.dst.metrics[RTAX_FEATURES-1] |= RTAX_FEATURE_ALLFRAG; - ip6_ins_rt(nrt, NULL, NULL, NULL); } - out: dst_release(&rt->u.dst); }