btrfs: backref: rename and move backref_cache_cleanup()
Since we're releasing all existing nodes/edges, other than cleanup the mess after error, "release" is a more proper naming here. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Родитель
023acb07bc
Коммит
13fe1bdb22
|
@ -2559,3 +2559,36 @@ void btrfs_backref_cleanup_node(struct btrfs_backref_cache *cache,
|
|||
|
||||
btrfs_backref_drop_node(cache, node);
|
||||
}
|
||||
|
||||
/*
|
||||
* Release all nodes/edges from current cache
|
||||
*/
|
||||
void btrfs_backref_release_cache(struct btrfs_backref_cache *cache)
|
||||
{
|
||||
struct btrfs_backref_node *node;
|
||||
int i;
|
||||
|
||||
while (!list_empty(&cache->detached)) {
|
||||
node = list_entry(cache->detached.next,
|
||||
struct btrfs_backref_node, list);
|
||||
btrfs_backref_cleanup_node(cache, node);
|
||||
}
|
||||
|
||||
while (!list_empty(&cache->leaves)) {
|
||||
node = list_entry(cache->leaves.next,
|
||||
struct btrfs_backref_node, lower);
|
||||
btrfs_backref_cleanup_node(cache, node);
|
||||
}
|
||||
|
||||
cache->last_trans = 0;
|
||||
|
||||
for (i = 0; i < BTRFS_MAX_LEVEL; i++)
|
||||
ASSERT(list_empty(&cache->pending[i]));
|
||||
ASSERT(list_empty(&cache->pending_edge));
|
||||
ASSERT(list_empty(&cache->useless_node));
|
||||
ASSERT(list_empty(&cache->changed));
|
||||
ASSERT(list_empty(&cache->detached));
|
||||
ASSERT(RB_EMPTY_ROOT(&cache->rb_root));
|
||||
ASSERT(!cache->nr_nodes);
|
||||
ASSERT(!cache->nr_edges);
|
||||
}
|
||||
|
|
|
@ -353,4 +353,6 @@ static inline void btrfs_backref_drop_node(struct btrfs_backref_cache *tree,
|
|||
void btrfs_backref_cleanup_node(struct btrfs_backref_cache *cache,
|
||||
struct btrfs_backref_node *node);
|
||||
|
||||
void btrfs_backref_release_cache(struct btrfs_backref_cache *cache);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -175,36 +175,6 @@ static void mapping_tree_init(struct mapping_tree *tree)
|
|||
spin_lock_init(&tree->lock);
|
||||
}
|
||||
|
||||
static void backref_cache_cleanup(struct btrfs_backref_cache *cache)
|
||||
{
|
||||
struct btrfs_backref_node *node;
|
||||
int i;
|
||||
|
||||
while (!list_empty(&cache->detached)) {
|
||||
node = list_entry(cache->detached.next,
|
||||
struct btrfs_backref_node, list);
|
||||
btrfs_backref_cleanup_node(cache, node);
|
||||
}
|
||||
|
||||
while (!list_empty(&cache->leaves)) {
|
||||
node = list_entry(cache->leaves.next,
|
||||
struct btrfs_backref_node, lower);
|
||||
btrfs_backref_cleanup_node(cache, node);
|
||||
}
|
||||
|
||||
cache->last_trans = 0;
|
||||
|
||||
for (i = 0; i < BTRFS_MAX_LEVEL; i++)
|
||||
ASSERT(list_empty(&cache->pending[i]));
|
||||
ASSERT(list_empty(&cache->pending_edge));
|
||||
ASSERT(list_empty(&cache->useless_node));
|
||||
ASSERT(list_empty(&cache->changed));
|
||||
ASSERT(list_empty(&cache->detached));
|
||||
ASSERT(RB_EMPTY_ROOT(&cache->rb_root));
|
||||
ASSERT(!cache->nr_nodes);
|
||||
ASSERT(!cache->nr_edges);
|
||||
}
|
||||
|
||||
static void backref_tree_panic(struct rb_node *rb_node, int errno, u64 bytenr)
|
||||
{
|
||||
|
||||
|
@ -3948,7 +3918,7 @@ restart:
|
|||
rc->create_reloc_tree = 0;
|
||||
set_reloc_control(rc);
|
||||
|
||||
backref_cache_cleanup(&rc->backref_cache);
|
||||
btrfs_backref_release_cache(&rc->backref_cache);
|
||||
btrfs_block_rsv_release(fs_info, rc->block_rsv, (u64)-1, NULL);
|
||||
|
||||
/*
|
||||
|
|
Загрузка…
Ссылка в новой задаче