aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2023-04-19 00:41:14 +0200
committerDavid Sterba <dsterba@suse.com>2023-04-19 01:10:24 +0200
commit68a04bc710e9db5e60d072e8034e8bef80599ddc (patch)
tree88e8f8dac6e87560904f417b4d25e21d0b32fd51 /Documentation
parent5a0398bac5a3264de46abd7021ddc5bd9b24043f (diff)
downloadbtrfs-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.rst6
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.