diff options
author | Josef Bacik <josef@toxicpanda.com> | 2021-12-15 15:40:08 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-03-14 13:13:49 +0100 |
commit | f7238e5094048f20ab6f92d7c2f5ec50fc247f26 (patch) | |
tree | 424a7ed9cc73b2c7ecfe1973590b442ffcee6abf /fs/btrfs/block-group.h | |
parent | 9c54e80ddc6bd89596a4046d451908700476fd14 (diff) | |
download | lwn-f7238e5094048f20ab6f92d7c2f5ec50fc247f26.tar.gz lwn-f7238e5094048f20ab6f92d7c2f5ec50fc247f26.zip |
btrfs: add support for multiple global roots
With extent tree v2 you will be able to create multiple csum, extent,
and free space trees. They will be used based on the block group, which
will now use the block_group_item->chunk_objectid to point to the set of
global roots that it will use. When allocating new block groups we'll
simply mod the gigabyte offset of the block group against the number of
global roots we have and that will be the block groups global id.
>From there we can take the bytenr that we're modifying in the respective
tree, look up the block group and get that block groups corresponding
global root id. From there we can get to the appropriate global root
for that bytenr.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/block-group.h')
-rw-r--r-- | fs/btrfs/block-group.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h index 5878b7ce3b78..93aabc68bb6a 100644 --- a/fs/btrfs/block-group.h +++ b/fs/btrfs/block-group.h @@ -68,6 +68,7 @@ struct btrfs_block_group { u64 bytes_super; u64 flags; u64 cache_generation; + u64 global_root_id; /* * If the free space extent count exceeds this number, convert the block |