Signed-off-by: Thomas Graf <[EMAIL PROTECTED]>
Index: net-2.6.14/include/net/ip6_fib.h
===================================================================
--- net-2.6.14.orig/include/net/ip6_fib.h
+++ net-2.6.14/include/net/ip6_fib.h
@@ -124,6 +124,11 @@ struct rt6_statistics {
#define RTN_ROOT 0x0002 /* tree root node */
#define RTN_RTINFO 0x0004 /* node with valid routing info */
+static inline int fib6_root_node(struct fib6_node *fn)
+{
+ return fn->fn_flags & RTN_ROOT;
+}
+
/*
* priority levels (or metrics)
*
Index: net-2.6.14/net/ipv6/ip6_fib.c
===================================================================
--- net-2.6.14.orig/net/ipv6/ip6_fib.c
+++ net-2.6.14/net/ipv6/ip6_fib.c
@@ -615,7 +615,7 @@ static struct fib6_node * fib6_lookup_1(
break;
}
- while ((fn->fn_flags & RTN_ROOT) == 0) {
+ while (!fib6_root_node(fn)) {
#ifdef CONFIG_IPV6_SUBTREES
if (fn->subtree) {
struct fib6_node *st;
@@ -626,7 +626,7 @@ static struct fib6_node * fib6_lookup_1(
if (narg->addr) {
st = fib6_lookup_1(fn->subtree, narg);
- if (st && !(st->fn_flags & RTN_ROOT))
+ if (st && !fib6_root_node(st))
return st;
}
}
@@ -744,7 +744,7 @@ struct fib6_node * fib6_locate(struct fi
static struct rt6_info * fib6_find_prefix(struct fib6_node *fn)
{
- if (fn->fn_flags&RTN_ROOT)
+ if (fib6_root_node(fn))
return &ip6_null_entry;
while(fn) {
@@ -788,7 +788,7 @@ static struct fib6_node * fib6_repair_tr
if (children == 3 || SUBTREE(fn)
#ifdef CONFIG_IPV6_SUBTREES
/* Subtree root (i.e. fn) may have one child */
- || (children && fn->fn_flags&RTN_ROOT)
+ || (children && fib6_root_node(fn))
#endif
) {
fn->leaf = fib6_find_prefix(fn);
@@ -805,11 +805,11 @@ static struct fib6_node * fib6_repair_tr
pn = fn->parent;
#ifdef CONFIG_IPV6_SUBTREES
if (SUBTREE(pn) == fn) {
- BUG_TRAP(fn->fn_flags&RTN_ROOT);
+ BUG_TRAP(fib6_root_node(fn));
SUBTREE(pn) = NULL;
nstate = FWS_L;
} else {
- BUG_TRAP(!(fn->fn_flags&RTN_ROOT));
+ BUG_TRAP(!fib6_root_node(fn));
#endif
if (pn->right == fn) pn->right = child;
else if (pn->left == fn) pn->left = child;
@@ -1033,7 +1033,7 @@ int fib6_walk_continue(struct fib6_walke
w->node = pn;
#ifdef CONFIG_IPV6_SUBTREES
if (SUBTREE(pn) == fn) {
- BUG_TRAP(fn->fn_flags&RTN_ROOT);
+ BUG_TRAP(fib6_root_node(fn));
w->state = FWS_L;
continue;
}
Index: net-2.6.14/net/ipv6/route.c
===================================================================
--- net-2.6.14.orig/net/ipv6/route.c
+++ net-2.6.14/net/ipv6/route.c
@@ -448,7 +448,7 @@ static struct rt6_info *rt6_cow(struct r
#define BACKTRACK() \
if (rt == &ip6_null_entry && strict) { \
while ((fn = fn->parent) != NULL) { \
- if (fn->fn_flags & RTN_ROOT) { \
+ if (fib6_root_node(fn)) { \
dst_hold(&rt->u.dst); \
goto out; \
} \
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html