nfsd: nfsd should drop CAP_MKNOD for non-root
[safe/jmp/linux-2.6] / lib / rbtree.c
index 4a7173c..9956b99 100644 (file)
@@ -170,7 +170,7 @@ static void __rb_erase_color(struct rb_node *node, struct rb_node *parent,
                                        __rb_rotate_right(other, root);
                                        other = parent->rb_right;
                                }
-                               rb_set_colour(other, rb_colour(parent));
+                               rb_set_color(other, rb_color(parent));
                                rb_set_black(parent);
                                if (other->rb_right)
                                        rb_set_black(other->rb_right);
@@ -207,7 +207,7 @@ static void __rb_erase_color(struct rb_node *node, struct rb_node *parent,
                                        __rb_rotate_left(other, root);
                                        other = parent->rb_left;
                                }
-                               rb_set_colour(other, rb_colour(parent));
+                               rb_set_color(other, rb_color(parent));
                                rb_set_black(parent);
                                if (other->rb_left)
                                        rb_set_black(other->rb_left);
@@ -239,7 +239,7 @@ void rb_erase(struct rb_node *node, struct rb_root *root)
                        node = left;
                child = node->rb_right;
                parent = rb_parent(node);
-               color = rb_colour(node);
+               color = rb_color(node);
 
                if (child)
                        rb_set_parent(child, parent);
@@ -249,7 +249,7 @@ void rb_erase(struct rb_node *node, struct rb_root *root)
                } else
                        parent->rb_left = child;
 
-               node->rb_parent_colour = old->rb_parent_colour;
+               node->rb_parent_color = old->rb_parent_color;
                node->rb_right = old->rb_right;
                node->rb_left = old->rb_left;
 
@@ -269,7 +269,7 @@ void rb_erase(struct rb_node *node, struct rb_root *root)
        }
 
        parent = rb_parent(node);
-       color = rb_colour(node);
+       color = rb_color(node);
 
        if (child)
                rb_set_parent(child, parent);
@@ -292,7 +292,7 @@ EXPORT_SYMBOL(rb_erase);
 /*
  * This function returns the first node (in sort order) of the tree.
  */
-struct rb_node *rb_first(struct rb_root *root)
+struct rb_node *rb_first(const struct rb_root *root)
 {
        struct rb_node  *n;
 
@@ -305,7 +305,7 @@ struct rb_node *rb_first(struct rb_root *root)
 }
 EXPORT_SYMBOL(rb_first);
 
-struct rb_node *rb_last(struct rb_root *root)
+struct rb_node *rb_last(const struct rb_root *root)
 {
        struct rb_node  *n;
 
@@ -318,17 +318,20 @@ struct rb_node *rb_last(struct rb_root *root)
 }
 EXPORT_SYMBOL(rb_last);
 
-struct rb_node *rb_next(struct rb_node *node)
+struct rb_node *rb_next(const struct rb_node *node)
 {
        struct rb_node *parent;
 
+       if (rb_parent(node) == node)
+               return NULL;
+
        /* If we have a right-hand child, go down and then left as far
           as we can. */
        if (node->rb_right) {
                node = node->rb_right; 
                while (node->rb_left)
                        node=node->rb_left;
-               return node;
+               return (struct rb_node *)node;
        }
 
        /* No right-hand children.  Everything down and left is
@@ -344,17 +347,20 @@ struct rb_node *rb_next(struct rb_node *node)
 }
 EXPORT_SYMBOL(rb_next);
 
-struct rb_node *rb_prev(struct rb_node *node)
+struct rb_node *rb_prev(const struct rb_node *node)
 {
        struct rb_node *parent;
 
+       if (rb_parent(node) == node)
+               return NULL;
+
        /* If we have a left-hand child, go down and then right as far
           as we can. */
        if (node->rb_left) {
                node = node->rb_left; 
                while (node->rb_right)
                        node=node->rb_right;
-               return node;
+               return (struct rb_node *)node;
        }
 
        /* No left-hand children. Go up till we find an ancestor which