summaryrefslogtreecommitdiff
path: root/btrfs-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'btrfs-list.c')
-rw-r--r--btrfs-list.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/btrfs-list.c b/btrfs-list.c
index c3d35de3..4fab8588 100644
--- a/btrfs-list.c
+++ b/btrfs-list.c
@@ -513,8 +513,11 @@ static int add_root(struct root_lookup *root_lookup,
return 0;
}
-void __free_root_info(struct root_info *ri)
+static void __free_root_info(struct rb_node *node)
{
+ struct root_info *ri;
+
+ ri = rb_entry(node, struct root_info, rb_node);
if (ri->name)
free(ri->name);
@@ -527,19 +530,9 @@ void __free_root_info(struct root_info *ri)
free(ri);
}
-void __free_all_subvolumn(struct root_lookup *root_tree)
+static inline void __free_all_subvolumn(struct root_lookup *root_tree)
{
- struct root_info *entry;
- struct rb_node *n;
-
- n = rb_first(&root_tree->root);
- while (n) {
- entry = rb_entry(n, struct root_info, rb_node);
- rb_erase(n, &root_tree->root);
- __free_root_info(entry);
-
- n = rb_first(&root_tree->root);
- }
+ rb_free_nodes(&root_tree->root, __free_root_info);
}
/*