Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 104890
b: refs/heads/master
c: 3d0f24a
h: refs/heads/master
v: v3
  • Loading branch information
Stephen Hemminger authored and David S. Miller committed Jul 22, 2008
1 parent bfc91e1 commit b22808e
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 75307c0fe7fcb3b52a92fe32384fc33f50622654
refs/heads/master: 3d0f24a74e7957593a5622eb5c04ed6860dd8391
2 changes: 1 addition & 1 deletion trunk/include/net/ip6_route.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ extern struct rt6_info *rt6_lookup(struct net *net,
extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
struct neighbour *neigh,
const struct in6_addr *addr);
extern int icmp6_dst_gc(int *more);
extern int icmp6_dst_gc(void);

extern void fib6_force_start_gc(struct net *net);

Expand Down
3 changes: 1 addition & 2 deletions trunk/net/ipv6/ip6_fib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1453,9 +1453,8 @@ void fib6_run_gc(unsigned long expires, struct net *net)
}
gc_args.timeout = net->ipv6.sysctl.ip6_rt_gc_interval;
}
gc_args.more = 0;

icmp6_dst_gc(&gc_args.more);
gc_args.more = icmp6_dst_gc();

fib6_clean_all(net, fib6_age, 0, NULL);

Expand Down
10 changes: 4 additions & 6 deletions trunk/net/ipv6/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -978,13 +978,12 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
return &rt->u.dst;
}

int icmp6_dst_gc(int *more)
int icmp6_dst_gc(void)
{
struct dst_entry *dst, *next, **pprev;
int freed;
int more = 0;

next = NULL;
freed = 0;

spin_lock_bh(&icmp6_dst_lock);
pprev = &icmp6_dst_gc_list;
Expand All @@ -993,16 +992,15 @@ int icmp6_dst_gc(int *more)
if (!atomic_read(&dst->__refcnt)) {
*pprev = dst->next;
dst_free(dst);
freed++;
} else {
pprev = &dst->next;
(*more)++;
++more;
}
}

spin_unlock_bh(&icmp6_dst_lock);

return freed;
return more;
}

static int ip6_dst_gc(struct dst_ops *ops)
Expand Down

0 comments on commit b22808e

Please sign in to comment.