diff options
author | Qu Wenruo <wqu@suse.com> | 2023-04-19 00:41:14 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2023-04-19 01:10:24 +0200 |
commit | 68a04bc710e9db5e60d072e8034e8bef80599ddc (patch) | |
tree | 88e8f8dac6e87560904f417b4d25e21d0b32fd51 /Documentation | |
parent | 5a0398bac5a3264de46abd7021ddc5bd9b24043f (diff) | |
download | btrfs-progs-68a04bc710e9db5e60d072e8034e8bef80599ddc.tar.gz |
btrfs-progs: tune: add new option to convert back to extent tree
With previous btrfstune support to convert to block-group-tree, it has
implemented most of the infrastructure for bi-directional conversion.
This patch will implement the remaining conversion support to go back to
extent tree.
The modification includes:
- New convert_to_extent_tree() function in btrfstune.c
It's almost the same as convert_to_bg_tree(), but with small changes:
* No need to set extra features like NO_HOLES/FST.
* Need to delete the block group tree when everything finished.
- Update btrfs_delete_and_free_root() to handle non-global roots
Currently the function can only accepts global roots (extent/csum/free
space trees)
If we pass a non-global root into the function, we will screw up
global_roots_tree and crash.
Since we're going to use btrfs_delete_and_free_root() to free block
group tree which is not a global tree, this is needed.
- New handling for half converted fs in get_last_converted_bg()
There are two cases need to be handled:
* The bg tree is already empty
We need to grab the first bg in extent tree.
Or at conversion function we will fail at grabbing the first bg.
* The bg tree is not empty
Then we need to grab the last bg in extent tree.
- Extra root switching in involved functions. This involves:
* read_converting_block_groups()
* insert_block_group_item()
* update_block_group_item()
We just need to update our target root according to the current
compat_ro and super flags.
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/btrfstune.rst | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/btrfstune.rst b/Documentation/btrfstune.rst index c84c1e7e..3fc1bea6 100644 --- a/Documentation/btrfstune.rst +++ b/Documentation/btrfstune.rst @@ -29,6 +29,12 @@ OPTIONS Enable block group tree feature (greatly reduce mount time), enabled by mkfs feature *block-group-tree*. +--disable-block-group-tree + (since kernel 6.1) + + Disable block group tree feature and convert the filesystem to extent + tree. + -f Allow dangerous changes, e.g. clear the seeding flag or change fsid. Make sure that you are aware of the dangers. |