Skip to content

Commit aa4fd87

Browse files
josefbacikkdave
authored andcommitted
btrfs: remove the ->lowest and ->leaves members from backref cache
Before we were keeping all of our nodes on various lists in order to make sure everything got cleaned up correctly. We used node->lowest to indicate that node->lower was linked into the cache->leaves list. Now that we do cleanup based on the rb tree both the list and the flag are useless, so delete them both. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: David Sterba <dsterba@suse.com>
1 parent 244c375 commit aa4fd87

File tree

3 files changed

+0
-30
lines changed

3 files changed

+0
-30
lines changed

fs/btrfs/backref.c

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3022,7 +3022,6 @@ void btrfs_backref_init_cache(struct btrfs_fs_info *fs_info,
30223022
for (i = 0; i < BTRFS_MAX_LEVEL; i++)
30233023
INIT_LIST_HEAD(&cache->pending[i]);
30243024
INIT_LIST_HEAD(&cache->detached);
3025-
INIT_LIST_HEAD(&cache->leaves);
30263025
INIT_LIST_HEAD(&cache->pending_edge);
30273026
INIT_LIST_HEAD(&cache->useless_node);
30283027
cache->fs_info = fs_info;
@@ -3130,29 +3129,17 @@ void btrfs_backref_drop_node(struct btrfs_backref_cache *tree,
31303129
void btrfs_backref_cleanup_node(struct btrfs_backref_cache *cache,
31313130
struct btrfs_backref_node *node)
31323131
{
3133-
struct btrfs_backref_node *upper;
31343132
struct btrfs_backref_edge *edge;
31353133

31363134
if (!node)
31373135
return;
31383136

3139-
BUG_ON(!node->lowest && !node->detached);
31403137
while (!list_empty(&node->upper)) {
31413138
edge = list_entry(node->upper.next, struct btrfs_backref_edge,
31423139
list[LOWER]);
3143-
upper = edge->node[UPPER];
31443140
list_del(&edge->list[LOWER]);
31453141
list_del(&edge->list[UPPER]);
31463142
btrfs_backref_free_edge(cache, edge);
3147-
3148-
/*
3149-
* Add the node to leaf node list if no other child block
3150-
* cached.
3151-
*/
3152-
if (list_empty(&upper->lower)) {
3153-
list_add_tail(&upper->lower, &cache->leaves);
3154-
upper->lowest = 1;
3155-
}
31563143
}
31573144

31583145
btrfs_backref_drop_node(cache, node);
@@ -3599,7 +3586,6 @@ int btrfs_backref_finish_upper_links(struct btrfs_backref_cache *cache,
35993586
if (rb_node)
36003587
btrfs_backref_panic(cache->fs_info, start->bytenr,
36013588
-EEXIST);
3602-
list_add_tail(&start->lower, &cache->leaves);
36033589

36043590
/*
36053591
* Use breadth first search to iterate all related edges.
@@ -3638,11 +3624,6 @@ int btrfs_backref_finish_upper_links(struct btrfs_backref_cache *cache,
36383624
* parents have already been linked.
36393625
*/
36403626
if (!RB_EMPTY_NODE(&upper->rb_node)) {
3641-
if (upper->lowest) {
3642-
list_del_init(&upper->lower);
3643-
upper->lowest = 0;
3644-
}
3645-
36463627
list_add_tail(&edge->list[UPPER], &upper->lower);
36473628
continue;
36483629
}

fs/btrfs/backref.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,8 +341,6 @@ struct btrfs_backref_node {
341341
struct extent_buffer *eb;
342342
/* Level of the tree block */
343343
unsigned int level:8;
344-
/* 1 if no child node is in the cache */
345-
unsigned int lowest:1;
346344
/* Is the extent buffer locked */
347345
unsigned int locked:1;
348346
/* Has the block been processed */
@@ -395,8 +393,6 @@ struct btrfs_backref_cache {
395393
* level blocks may not reflect the new location
396394
*/
397395
struct list_head pending[BTRFS_MAX_LEVEL];
398-
/* List of backref nodes with no child node */
399-
struct list_head leaves;
400396
/* List of detached backref node. */
401397
struct list_head detached;
402398

fs/btrfs/relocation.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -342,12 +342,6 @@ static bool handle_useless_nodes(struct reloc_control *rc,
342342
if (cur == node)
343343
ret = true;
344344

345-
/* The node is the lowest node */
346-
if (cur->lowest) {
347-
list_del_init(&cur->lower);
348-
cur->lowest = 0;
349-
}
350-
351345
/* Cleanup the lower edges */
352346
while (!list_empty(&cur->lower)) {
353347
struct btrfs_backref_edge *edge;
@@ -426,7 +420,6 @@ static noinline_for_stack struct btrfs_backref_node *build_backref_tree(
426420
goto out;
427421
}
428422

429-
node->lowest = 1;
430423
cur = node;
431424

432425
/* Breadth-first search to build backref cache */

0 commit comments

Comments
 (0)