btrfs: switch to per-transaction pinned extents
This commit flips the switch to start tracking/processing pinned extents on a per-transaction basis. It mostly replaces all references from btrfs_fs_info::(pinned_extents|freed_extents[]) to btrfs_transaction::pinned_extents. Two notable modifications that warrant explicit mention are changing clean_pinned_extents to get a reference to the previously running transaction. The other one is removal of call to btrfs_destroy_pinned_extent since transactions are going to be cleaned in btrfs_cleanup_one_transaction. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:

committed by
David Sterba

parent
45bb5d6ae9
commit
fe119a6eeb
@@ -596,8 +596,8 @@ struct btrfs_fs_info {
|
||||
/* keep track of unallocated space */
|
||||
atomic64_t free_chunk_space;
|
||||
|
||||
struct extent_io_tree freed_extents[2];
|
||||
struct extent_io_tree *pinned_extents;
|
||||
/* Track ranges which are used by log trees blocks/logged data extents */
|
||||
struct extent_io_tree excluded_extents;
|
||||
|
||||
/* logical->physical extent mapping */
|
||||
struct extent_map_tree mapping_tree;
|
||||
|
Reference in New Issue
Block a user