btrfs-progs: move block-group-tree out of experimental features
The feedback from the community on block group tree is very positive, the only complain is, end users need to recompile btrfs-progs with experimental features to enjoy the new feature. So let's move it out of experimental features and let more people enjoy faster mount speed. Also change the option of btrfstune, from `-b` to `--enable-block-group-tree` to avoid short option. Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
4dbe66ca2f
commit
716c3be363
|
@ -66,6 +66,12 @@ big_metadata
|
|||
the filesystem uses *nodesize* for metadata blocks, this can be bigger than the
|
||||
page size
|
||||
|
||||
block_group_tree
|
||||
(since: 6.1)
|
||||
|
||||
block group item representation using a dedicated b-tree, this can greatly
|
||||
reduce mount time for large filesystems
|
||||
|
||||
compress_lzo
|
||||
(since: 2.6.38)
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@ means. Please refer to the *FILESYSTEM FEATURES* in :doc:`btrfs(5)<btrfs-man5>`
|
|||
OPTIONS
|
||||
-------
|
||||
|
||||
-b
|
||||
(since kernel 6.1, needs experimental build of btrfs-progs)
|
||||
--enable-block-group-tree
|
||||
(since kernel 6.1)
|
||||
Enable block group tree feature (greatly reduce mount time),
|
||||
enabled by mkfs feature *block-group-tree*.
|
||||
|
||||
|
|
|
@ -284,6 +284,11 @@ free-space-tree
|
|||
Enable the free space tree (mount option *space_cache=v2*) for persisting the
|
||||
free space cache.
|
||||
|
||||
block-group-tree
|
||||
(kernel support since 6.1)
|
||||
|
||||
Enable the block group tree to greatly reduce mount time for large filesystems.
|
||||
|
||||
BLOCK GROUPS, CHUNKS, RAID
|
||||
--------------------------
|
||||
|
||||
|
|
|
@ -171,7 +171,6 @@ static const struct btrfs_feature mkfs_features[] = {
|
|||
.desc = "support zoned devices"
|
||||
},
|
||||
#endif
|
||||
#if EXPERIMENTAL
|
||||
{
|
||||
.name = "block-group-tree",
|
||||
.compat_ro_flag = BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE,
|
||||
|
@ -181,6 +180,7 @@ static const struct btrfs_feature mkfs_features[] = {
|
|||
VERSION_NULL(default),
|
||||
.desc = "block group tree to reduce mount time"
|
||||
},
|
||||
#if EXPERIMENTAL
|
||||
{
|
||||
.name = "extent-tree-v2",
|
||||
.incompat_flag = BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2,
|
||||
|
@ -222,7 +222,6 @@ static const struct btrfs_feature runtime_features[] = {
|
|||
VERSION_TO_STRING2(default, 5,15),
|
||||
.desc = "free space tree (space_cache=v2)"
|
||||
},
|
||||
#if EXPERIMENTAL
|
||||
{
|
||||
.name = "block-group-tree",
|
||||
.compat_ro_flag = BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE,
|
||||
|
@ -232,7 +231,6 @@ static const struct btrfs_feature runtime_features[] = {
|
|||
VERSION_NULL(default),
|
||||
.desc = "block group tree to reduce mount time"
|
||||
},
|
||||
#endif
|
||||
/* Keep this one last */
|
||||
{
|
||||
.name = "list-all",
|
||||
|
|
18
tune/main.c
18
tune/main.c
|
@ -70,6 +70,7 @@ static const char * const tune_usage[] = {
|
|||
OPTLINE("-x", "enable skinny metadata extent refs (mkfs: skinny-metadata)"),
|
||||
OPTLINE("-n", "enable no-holes feature (mkfs: no-holes, more efficient sparse file representation)"),
|
||||
OPTLINE("-S <0|1>", "set/unset seeding status of a device"),
|
||||
OPTLINE("--enable-block-group-tree", "enable block group tree (mkfs: block-group-tree, for less mount time)"),
|
||||
"",
|
||||
"UUID changes:",
|
||||
OPTLINE("-u", "rewrite fsid, use a random one"),
|
||||
|
@ -84,7 +85,6 @@ static const char * const tune_usage[] = {
|
|||
"",
|
||||
"EXPERIMENTAL FEATURES:",
|
||||
OPTLINE("--csum CSUM", "switch checksum for data and metadata to CSUM"),
|
||||
OPTLINE("-b", "enable block group tree (mkfs: block-group-tree, for less mount time)"),
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
@ -113,27 +113,22 @@ int BOX_MAIN(btrfstune)(int argc, char *argv[])
|
|||
btrfs_config_init();
|
||||
|
||||
while(1) {
|
||||
enum { GETOPT_VAL_CSUM = GETOPT_VAL_FIRST };
|
||||
enum { GETOPT_VAL_CSUM = GETOPT_VAL_FIRST,
|
||||
GETOPT_VAL_ENABLE_BLOCK_GROUP_TREE };
|
||||
static const struct option long_options[] = {
|
||||
{ "help", no_argument, NULL, GETOPT_VAL_HELP},
|
||||
{ "enable-block-group-tree", no_argument, NULL,
|
||||
GETOPT_VAL_ENABLE_BLOCK_GROUP_TREE},
|
||||
#if EXPERIMENTAL
|
||||
{ "csum", required_argument, NULL, GETOPT_VAL_CSUM },
|
||||
#endif
|
||||
{ NULL, 0, NULL, 0 }
|
||||
};
|
||||
#if EXPERIMENTAL
|
||||
int c = getopt_long(argc, argv, "S:rxfuU:nmM:b", long_options, NULL);
|
||||
#else
|
||||
int c = getopt_long(argc, argv, "S:rxfuU:nmM:", long_options, NULL);
|
||||
#endif
|
||||
|
||||
if (c < 0)
|
||||
break;
|
||||
switch(c) {
|
||||
case 'b':
|
||||
btrfs_warn_experimental("Feature: conversion to block-group-tree");
|
||||
to_bg_tree = true;
|
||||
break;
|
||||
case 'S':
|
||||
seeding_flag = 1;
|
||||
seeding_value = arg_strtou64(optarg);
|
||||
|
@ -167,6 +162,9 @@ int BOX_MAIN(btrfstune)(int argc, char *argv[])
|
|||
ctree_flags |= OPEN_CTREE_IGNORE_FSID_MISMATCH;
|
||||
change_metadata_uuid = 1;
|
||||
break;
|
||||
case GETOPT_VAL_ENABLE_BLOCK_GROUP_TREE:
|
||||
to_bg_tree = true;
|
||||
break;
|
||||
#if EXPERIMENTAL
|
||||
case GETOPT_VAL_CSUM:
|
||||
btrfs_warn_experimental(
|
||||
|
|
Loading…
Reference in a new issue