Michel Lespinasse 46b6135a74 rbtree: handle 1-child recoloring in rb_erase() instead of rb_erase_color()
An interesting observation for rb_erase() is that when a node has
exactly one child, the node must be black and the child must be red.
An interesting consequence is that removing such a node can be done by
simply replacing it with its child and making the child black,
which we can do efficiently in rb_erase(). __rb_erase_color() then
only needs to handle the no-childs case and can be modified accordingly.

Signed-off-by: Michel Lespinasse <walken@google.com>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-10-09 16:22:37 +09:00
..
2012-05-26 11:51:03 +10:00
2011-09-21 13:39:59 -07:00
2011-03-11 14:25:50 +00:00
2008-06-06 11:29:10 -07:00
2011-10-29 21:20:22 +02:00
2007-07-17 10:23:04 -07:00
2007-05-10 18:24:13 +02:00
2011-03-31 11:26:23 -03:00
2012-10-06 03:04:57 +09:00
2012-10-06 03:04:56 +09:00
2012-05-07 16:51:19 -07:00
2012-03-28 15:58:21 -07:00
2012-07-30 17:25:16 -07:00
2012-01-31 23:19:47 +02:00
2011-12-08 19:52:43 -05:00