aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2004-08-15 05:09:07 -0700
committerDavid S. Miller <davem@kernel.bkbits.net>2004-08-15 05:09:07 -0700
commit26b561fb8226c4a33ec74b3a6a5bbde57d50175f (patch)
tree724a99355ce95dbb8e89e3251ddfc64ba99c8c34 /lib
parent550cfa2b3636462cb163b1f873b18ac0e7ab14b6 (diff)
downloadhistory-26b561fb8226c4a33ec74b3a6a5bbde57d50175f.tar.gz
[RBTREE]: Add rb_last()
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/rbtree.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/rbtree.c b/lib/rbtree.c
index 621552c344e77a..14b791ac508972 100644
--- a/lib/rbtree.c
+++ b/lib/rbtree.c
@@ -312,6 +312,19 @@ 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 *n;
+
+ n = root->rb_node;
+ if (!n)
+ return NULL;
+ while (n->rb_right)
+ n = n->rb_right;
+ return n;
+}
+EXPORT_SYMBOL(rb_last);
+
struct rb_node *rb_next(struct rb_node *node)
{
/* If we have a right-hand child, go down and then left as far