|
@@ -71,8 +71,7 @@ static DEFINE_RWLOCK(fib6_walker_lock);
|
|
#define FWS_INIT FWS_L
|
|
#define FWS_INIT FWS_L
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-static void fib6_prune_clones(struct net *net, struct fib6_node *fn,
|
|
|
|
- struct rt6_info *rt);
|
|
|
|
|
|
+static void fib6_prune_clones(struct net *net, struct fib6_node *fn);
|
|
static struct rt6_info *fib6_find_prefix(struct net *net, struct fib6_node *fn);
|
|
static struct rt6_info *fib6_find_prefix(struct net *net, struct fib6_node *fn);
|
|
static struct fib6_node *fib6_repair_tree(struct net *net, struct fib6_node *fn);
|
|
static struct fib6_node *fib6_repair_tree(struct net *net, struct fib6_node *fn);
|
|
static int fib6_walk(struct fib6_walker_t *w);
|
|
static int fib6_walk(struct fib6_walker_t *w);
|
|
@@ -941,7 +940,7 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt, struct nl_info *info,
|
|
if (!err) {
|
|
if (!err) {
|
|
fib6_start_gc(info->nl_net, rt);
|
|
fib6_start_gc(info->nl_net, rt);
|
|
if (!(rt->rt6i_flags & RTF_CACHE))
|
|
if (!(rt->rt6i_flags & RTF_CACHE))
|
|
- fib6_prune_clones(info->nl_net, pn, rt);
|
|
|
|
|
|
+ fib6_prune_clones(info->nl_net, pn);
|
|
}
|
|
}
|
|
|
|
|
|
out:
|
|
out:
|
|
@@ -1375,7 +1374,7 @@ int fib6_del(struct rt6_info *rt, struct nl_info *info)
|
|
pn = pn->parent;
|
|
pn = pn->parent;
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
- fib6_prune_clones(info->nl_net, pn, rt);
|
|
|
|
|
|
+ fib6_prune_clones(info->nl_net, pn);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -1600,10 +1599,9 @@ static int fib6_prune_clone(struct rt6_info *rt, void *arg)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static void fib6_prune_clones(struct net *net, struct fib6_node *fn,
|
|
|
|
- struct rt6_info *rt)
|
|
|
|
|
|
+static void fib6_prune_clones(struct net *net, struct fib6_node *fn)
|
|
{
|
|
{
|
|
- fib6_clean_tree(net, fn, fib6_prune_clone, 1, rt);
|
|
|
|
|
|
+ fib6_clean_tree(net, fn, fib6_prune_clone, 1, NULL);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|