diff options
author | Wei Yang <richardw.yang@linux.intel.com> | 2019-12-05 01:51:50 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-12-05 04:44:13 +0100 |
commit | 8b7569a224a18953b9aee29c375e439b8a6eeb05 (patch) | |
tree | 846b4d52291e14c51c7027a00acc250cf5eea4b9 | |
parent | lib/rbtree: set successor's parent unconditionally (diff) | |
download | linux-8b7569a224a18953b9aee29c375e439b8a6eeb05.tar.xz linux-8b7569a224a18953b9aee29c375e439b8a6eeb05.zip |
lib/rbtree: get successor's color directly
After move parent assignment out, we can check the color directly.
Link: http://lkml.kernel.org/r/20191028021442.5450-2-richardw.yang@linux.intel.com
Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Michel Lespinasse <walken@google.com>
Reviewed-by: Davidlohr Bueso <dbueso@suse.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/linux/rbtree_augmented.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h index 99c42e1a74b8..724b0d036b57 100644 --- a/include/linux/rbtree_augmented.h +++ b/include/linux/rbtree_augmented.h @@ -286,8 +286,7 @@ __rb_erase_augmented(struct rb_node *node, struct rb_root *root, rb_set_parent_color(child2, parent, RB_BLACK); rebalance = NULL; } else { - unsigned long pc2 = successor->__rb_parent_color; - rebalance = __rb_is_black(pc2) ? parent : NULL; + rebalance = rb_is_black(successor) ? parent : NULL; } successor->__rb_parent_color = pc; tmp = successor; |