diff mbox series

btrfs-progs: hide block group tree behind experimental feature

Message ID 0b8f20ae26661e040dfcaae90928bbc1c6fff5cd.1662952308.git.wqu@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs-progs: hide block group tree behind experimental feature | expand

Commit Message

Qu Wenruo Sept. 12, 2022, 3:12 a.m. UTC
The block group tree doesn't yet have full bi-directional conversion
support from btrfstune, and it seems we may want one or two release
cycles to rule out some extra bugs before really releasing the progs
support.

This patch will hide the block group tree feature behind experimental
flag for the following tools:

- btrfstune
  "-b" option to convert to bg tree.

- mkfs.btrfs
  hide "block-group-tree" feature from both -O (the new default position
  for all features) and -R (the old, soon to be deprecated one).

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 btrfstune.c         | 4 ++++
 common/fsfeatures.c | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

David Sterba Sept. 21, 2022, 2:06 p.m. UTC | #1
On Mon, Sep 12, 2022 at 11:12:01AM +0800, Qu Wenruo wrote:
> The block group tree doesn't yet have full bi-directional conversion
> support from btrfstune, and it seems we may want one or two release
> cycles to rule out some extra bugs before really releasing the progs
> support.
> 
> This patch will hide the block group tree feature behind experimental
> flag for the following tools:
> 
> - btrfstune
>   "-b" option to convert to bg tree.
> 
> - mkfs.btrfs
>   hide "block-group-tree" feature from both -O (the new default position
>   for all features) and -R (the old, soon to be deprecated one).

The block group tree is going to 6.1, so the progs support will be
experimental in 6.0 and enabled no later than 6.1. It might be enabled
earlier so we can use the normal build in testing.
Qu Wenruo Sept. 21, 2022, 10:20 p.m. UTC | #2
On 2022/9/21 22:06, David Sterba wrote:
> On Mon, Sep 12, 2022 at 11:12:01AM +0800, Qu Wenruo wrote:
>> The block group tree doesn't yet have full bi-directional conversion
>> support from btrfstune, and it seems we may want one or two release
>> cycles to rule out some extra bugs before really releasing the progs
>> support.
>>
>> This patch will hide the block group tree feature behind experimental
>> flag for the following tools:
>>
>> - btrfstune
>>    "-b" option to convert to bg tree.
>>
>> - mkfs.btrfs
>>    hide "block-group-tree" feature from both -O (the new default position
>>    for all features) and -R (the old, soon to be deprecated one).
>
> The block group tree is going to 6.1, so the progs support will be
> experimental in 6.0 and enabled no later than 6.1. It might be enabled
> earlier so we can use the normal build in testing.

Personally speaking, I'd hope bg tree would be hidden behind
experimental until the bi-directional convert is implemented.

(AKA, I should finish the remaining part of the btrfstune for bg tree)

Thanks,
Qu
David Sterba Sept. 22, 2022, 1:46 p.m. UTC | #3
On Thu, Sep 22, 2022 at 06:20:25AM +0800, Qu Wenruo wrote:
> 
> 
> On 2022/9/21 22:06, David Sterba wrote:
> > On Mon, Sep 12, 2022 at 11:12:01AM +0800, Qu Wenruo wrote:
> >> The block group tree doesn't yet have full bi-directional conversion
> >> support from btrfstune, and it seems we may want one or two release
> >> cycles to rule out some extra bugs before really releasing the progs
> >> support.
> >>
> >> This patch will hide the block group tree feature behind experimental
> >> flag for the following tools:
> >>
> >> - btrfstune
> >>    "-b" option to convert to bg tree.
> >>
> >> - mkfs.btrfs
> >>    hide "block-group-tree" feature from both -O (the new default position
> >>    for all features) and -R (the old, soon to be deprecated one).
> >
> > The block group tree is going to 6.1, so the progs support will be
> > experimental in 6.0 and enabled no later than 6.1. It might be enabled
> > earlier so we can use the normal build in testing.
> 
> Personally speaking, I'd hope bg tree would be hidden behind
> experimental until the bi-directional convert is implemented.

As with other new features we need a stabilization period, mkfs support
is the first step and the user space tools should provide feature parity
in the same release number at the latest.

That we have the btrfstune to do the conversions is a nice to have that
we do want to have eventually because we know that the bg tree will
solve slow mounts on large filesystems. So the experimental status for
btrfstune is fine, but not for mkfs.
diff mbox series

Patch

diff --git a/btrfstune.c b/btrfstune.c
index add7b1804400..b9a76ac095f0 100644
--- a/btrfstune.c
+++ b/btrfstune.c
@@ -949,7 +949,11 @@  int BOX_MAIN(btrfstune)(int argc, char *argv[])
 #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;
diff --git a/common/fsfeatures.c b/common/fsfeatures.c
index 5896f66b3e91..67b5b08befc1 100644
--- a/common/fsfeatures.c
+++ b/common/fsfeatures.c
@@ -224,14 +224,16 @@  static const struct btrfs_feature runtime_features[] = {
 		VERSION_TO_STRING2(safe, 4,9),
 		VERSION_TO_STRING2(default, 5,15),
 		.desc		= "free space tree (space_cache=v2)"
+#if EXPERIMENTAL
 	}, {
 		.name		= "block-group-tree",
 		.flag		= BTRFS_RUNTIME_FEATURE_BLOCK_GROUP_TREE,
 		.sysfs_name = "block_group_tree",
-		VERSION_TO_STRING2(compat, 6,0),
+		VERSION_TO_STRING2(compat, 6,2),
 		VERSION_NULL(safe),
 		VERSION_NULL(default),
 		.desc		= "block group tree to reduce mount time"
+#endif
 	},
 	/* Keep this one last */
 	{