From: Patrick McHardy <kaber@trash.net>
Date: Fri, 14 Jan 2011 13:12:37 +0000 (+0100)
Subject: Merge branch 'master' of git://1984.lsi.us.es/net-next-2.6
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=0134e89c7bcc9fde1da962c82a120691e185619f;p=linux.git

Merge branch 'master' of git://1984.lsi.us.es/net-next-2.6

Conflicts:
	net/ipv4/route.c

Signed-off-by: Patrick McHardy <kaber@trash.net>
---

0134e89c7bcc9fde1da962c82a120691e185619f
diff --cc include/net/dst.h
index 6baba836ad8b8,93b0310317bed..be5a0d4c491d9
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@@ -70,9 -70,9 +70,9 @@@ struct dst_entry 
  
  	struct  dst_ops	        *ops;
  
- 	u32			metrics[RTAX_MAX];
+ 	u32			_metrics[RTAX_MAX];
  
 -#ifdef CONFIG_NET_CLS_ROUTE
 +#ifdef CONFIG_IP_ROUTE_CLASSID
  	__u32			tclassid;
  #else
  	__u32			__pad2;
diff --cc net/ipv4/route.c
index f70ae1bccb8a0,351dc4e852423..3e5b7cc2db4fe
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@@ -1802,32 -1824,18 +1824,18 @@@ static void rt_set_nexthop(struct rtabl
  		if (FIB_RES_GW(*res) &&
  		    FIB_RES_NH(*res).nh_scope == RT_SCOPE_LINK)
  			rt->rt_gateway = FIB_RES_GW(*res);
- 		memcpy(rt->dst.metrics, fi->fib_metrics,
- 		       sizeof(rt->dst.metrics));
- 		if (fi->fib_mtu == 0) {
- 			rt->dst.metrics[RTAX_MTU-1] = rt->dst.dev->mtu;
- 			if (dst_metric_locked(&rt->dst, RTAX_MTU) &&
- 			    rt->rt_gateway != rt->rt_dst &&
- 			    rt->dst.dev->mtu > 576)
- 				rt->dst.metrics[RTAX_MTU-1] = 576;
- 		}
+ 		dst_import_metrics(dst, fi->fib_metrics);
 -#ifdef CONFIG_NET_CLS_ROUTE
 +#ifdef CONFIG_IP_ROUTE_CLASSID
- 		rt->dst.tclassid = FIB_RES_NH(*res).nh_tclassid;
+ 		dst->tclassid = FIB_RES_NH(*res).nh_tclassid;
  #endif
- 	} else
- 		rt->dst.metrics[RTAX_MTU-1]= rt->dst.dev->mtu;
- 
- 	if (dst_metric(&rt->dst, RTAX_HOPLIMIT) == 0)
- 		rt->dst.metrics[RTAX_HOPLIMIT-1] = sysctl_ip_default_ttl;
- 	if (dst_mtu(&rt->dst) > IP_MAX_MTU)
- 		rt->dst.metrics[RTAX_MTU-1] = IP_MAX_MTU;
- 	if (dst_metric(&rt->dst, RTAX_ADVMSS) == 0)
- 		rt->dst.metrics[RTAX_ADVMSS-1] = max_t(unsigned int, rt->dst.dev->mtu - 40,
- 				       ip_rt_min_advmss);
- 	if (dst_metric(&rt->dst, RTAX_ADVMSS) > 65535 - 40)
- 		rt->dst.metrics[RTAX_ADVMSS-1] = 65535 - 40;
+ 	}
+ 
+ 	if (dst_mtu(dst) > IP_MAX_MTU)
+ 		dst_metric_set(dst, RTAX_MTU, IP_MAX_MTU);
+ 	if (dst_metric_raw(dst, RTAX_ADVMSS) > 65535 - 40)
+ 		dst_metric_set(dst, RTAX_ADVMSS, 65535 - 40);
  
 -#ifdef CONFIG_NET_CLS_ROUTE
 +#ifdef CONFIG_IP_ROUTE_CLASSID
  #ifdef CONFIG_IP_MULTIPLE_TABLES
  	set_class_tag(rt, fib_rules_tclass(res));
  #endif