Blame SOURCES/e2fsprogs-1.45.6-libext2fs-remove-augmented-rbtree-functionality.patch

e427d2
From 1a95588e8090a2ac6cab364e5a24be219f50710b Mon Sep 17 00:00:00 2001
e427d2
From: Lukas Czerner <lczerner@redhat.com>
e427d2
Date: Fri, 6 Aug 2021 11:58:17 +0200
e427d2
Subject: [PATCH 41/46] libext2fs: remove augmented rbtree functionality
e427d2
Content-Type: text/plain
e427d2
e427d2
Rbtree code was originally taken from linux kernel. This includes the
e427d2
augmented rbtree functionality, however this was never intended to be
e427d2
used and is not used still. Just remove it.
e427d2
e427d2
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
e427d2
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e427d2
---
e427d2
 lib/ext2fs/rbtree.c | 68 ---------------------------------------------
e427d2
 lib/ext2fs/rbtree.h |  8 ------
e427d2
 2 files changed, 76 deletions(-)
e427d2
e427d2
diff --git a/lib/ext2fs/rbtree.c b/lib/ext2fs/rbtree.c
e427d2
index 5b92099d..74426fa6 100644
e427d2
--- a/lib/ext2fs/rbtree.c
e427d2
+++ b/lib/ext2fs/rbtree.c
e427d2
@@ -280,74 +280,6 @@ void ext2fs_rb_erase(struct rb_node *node, struct rb_root *root)
e427d2
 		__rb_erase_color(child, parent, root);
e427d2
 }
e427d2
 
e427d2
-static void ext2fs_rb_augment_path(struct rb_node *node, rb_augment_f func, void *data)
e427d2
-{
e427d2
-	struct rb_node *parent;
e427d2
-
e427d2
-up:
e427d2
-	func(node, data);
e427d2
-	parent = ext2fs_rb_parent(node);
e427d2
-	if (!parent)
e427d2
-		return;
e427d2
-
e427d2
-	if (node == parent->rb_left && parent->rb_right)
e427d2
-		func(parent->rb_right, data);
e427d2
-	else if (parent->rb_left)
e427d2
-		func(parent->rb_left, data);
e427d2
-
e427d2
-	node = parent;
e427d2
-	goto up;
e427d2
-}
e427d2
-
e427d2
-/*
e427d2
- * after inserting @node into the tree, update the tree to account for
e427d2
- * both the new entry and any damage done by rebalance
e427d2
- */
e427d2
-void ext2fs_rb_augment_insert(struct rb_node *node, rb_augment_f func, void *data)
e427d2
-{
e427d2
-	if (node->rb_left)
e427d2
-		node = node->rb_left;
e427d2
-	else if (node->rb_right)
e427d2
-		node = node->rb_right;
e427d2
-
e427d2
-	ext2fs_rb_augment_path(node, func, data);
e427d2
-}
e427d2
-
e427d2
-/*
e427d2
- * before removing the node, find the deepest node on the rebalance path
e427d2
- * that will still be there after @node gets removed
e427d2
- */
e427d2
-struct rb_node *ext2fs_rb_augment_erase_begin(struct rb_node *node)
e427d2
-{
e427d2
-	struct rb_node *deepest;
e427d2
-
e427d2
-	if (!node->rb_right && !node->rb_left)
e427d2
-		deepest = ext2fs_rb_parent(node);
e427d2
-	else if (!node->rb_right)
e427d2
-		deepest = node->rb_left;
e427d2
-	else if (!node->rb_left)
e427d2
-		deepest = node->rb_right;
e427d2
-	else {
e427d2
-		deepest = ext2fs_rb_next(node);
e427d2
-		if (deepest->rb_right)
e427d2
-			deepest = deepest->rb_right;
e427d2
-		else if (ext2fs_rb_parent(deepest) != node)
e427d2
-			deepest = ext2fs_rb_parent(deepest);
e427d2
-	}
e427d2
-
e427d2
-	return deepest;
e427d2
-}
e427d2
-
e427d2
-/*
e427d2
- * after removal, update the tree to account for the removed entry
e427d2
- * and any rebalance damage.
e427d2
- */
e427d2
-void ext2fs_rb_augment_erase_end(struct rb_node *node, rb_augment_f func, void *data)
e427d2
-{
e427d2
-	if (node)
e427d2
-		ext2fs_rb_augment_path(node, func, data);
e427d2
-}
e427d2
-
e427d2
 /*
e427d2
  * This function returns the first node (in sort order) of the tree.
e427d2
  */
e427d2
diff --git a/lib/ext2fs/rbtree.h b/lib/ext2fs/rbtree.h
e427d2
index 9e806779..a4eb35ae 100644
e427d2
--- a/lib/ext2fs/rbtree.h
e427d2
+++ b/lib/ext2fs/rbtree.h
e427d2
@@ -161,14 +161,6 @@ static inline void ext2fs_rb_clear_node(struct rb_node *node)
e427d2
 extern void ext2fs_rb_insert_color(struct rb_node *, struct rb_root *);
e427d2
 extern void ext2fs_rb_erase(struct rb_node *, struct rb_root *);
e427d2
 
e427d2
-typedef void (*rb_augment_f)(struct rb_node *node, void *data);
e427d2
-
e427d2
-extern void ext2fs_rb_augment_insert(struct rb_node *node,
e427d2
-			      rb_augment_f func, void *data);
e427d2
-extern struct rb_node *ext2fs_rb_augment_erase_begin(struct rb_node *node);
e427d2
-extern void ext2fs_rb_augment_erase_end(struct rb_node *node,
e427d2
-				 rb_augment_f func, void *data);
e427d2
-
e427d2
 /* Find logical next and previous nodes in a tree */
e427d2
 extern struct rb_node *ext2fs_rb_next(struct rb_node *);
e427d2
 extern struct rb_node *ext2fs_rb_prev(struct rb_node *);
e427d2
-- 
e427d2
2.35.1
e427d2