From 6998fc886cd9fad4e085ea5c3b5a2055f7a979c5 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Fri, 28 Jan 2011 14:07:16 -0800 Subject: [PATCH] --- yaml --- r: 236800 b: refs/heads/master c: b8dad61cc74b9ec71052e2a0e1c5119c65d166da h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/route.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 0594e8655306..5033f3d27ac1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 725d1e1b457dc2bbebb337677e73efe7c6d14da5 +refs/heads/master: b8dad61cc74b9ec71052e2a0e1c5119c65d166da diff --git a/trunk/net/ipv4/route.c b/trunk/net/ipv4/route.c index dd57f4896736..b1e5d3ac3460 100644 --- a/trunk/net/ipv4/route.c +++ b/trunk/net/ipv4/route.c @@ -1861,8 +1861,10 @@ static void rt_init_metrics(struct rtable *rt, struct fib_info *fi) { if (!(rt->fl.flags & FLOWI_FLAG_PRECOW_METRICS)) { no_cow: - rt->fi = fi; - atomic_inc(&fi->fib_clntref); + if (fi->fib_metrics != (u32 *) dst_default_metrics) { + rt->fi = fi; + atomic_inc(&fi->fib_clntref); + } dst_init_metrics(&rt->dst, fi->fib_metrics, true); } else { struct inet_peer *peer;