From a6cc4f784ae900bb11ccbac31a8c685efe92a990 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 27 Jan 2011 13:52:16 -0800 Subject: [PATCH] --- yaml --- r: 236710 b: refs/heads/master c: 144001bddcb4db62c2261f1d703d835851031577 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/net/inetpeer.h | 7 +++++++ trunk/net/ipv4/inetpeer.c | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 13ac5438a4a4..3c2ad9bd2b6d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 606598237c856b0c6584c2263288657658140da9 +refs/heads/master: 144001bddcb4db62c2261f1d703d835851031577 diff --git a/trunk/include/net/inetpeer.h b/trunk/include/net/inetpeer.h index 2af0c63d3975..61f2c66edb2a 100644 --- a/trunk/include/net/inetpeer.h +++ b/trunk/include/net/inetpeer.h @@ -51,6 +51,13 @@ struct inet_peer { void inet_initpeers(void) __init; +#define INETPEER_METRICS_NEW (~(u32) 0) + +static inline bool inet_metrics_new(const struct inet_peer *p) +{ + return p->metrics[RTAX_LOCK-1] == INETPEER_METRICS_NEW; +} + /* can be called with or without local BH being disabled */ struct inet_peer *inet_getpeer(struct inetpeer_addr *daddr, int create); diff --git a/trunk/net/ipv4/inetpeer.c b/trunk/net/ipv4/inetpeer.c index a96e65674ac3..b6513b13d729 100644 --- a/trunk/net/ipv4/inetpeer.c +++ b/trunk/net/ipv4/inetpeer.c @@ -512,6 +512,7 @@ struct inet_peer *inet_getpeer(struct inetpeer_addr *daddr, int create) atomic_set(&p->rid, 0); atomic_set(&p->ip_id_count, secure_ip_id(daddr->a4)); p->tcp_ts_stamp = 0; + p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW; INIT_LIST_HEAD(&p->unused);