From: Qu Wenruo Date: Fri, 27 Feb 2026 03:33:44 +0000 (+1030) Subject: btrfs: move shutdown and remove_bdev callbacks out of experimental features X-Git-Tag: v7.1-rc1~231^2~27 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=304076527c38;p=thirdparty%2Flinux.git btrfs: move shutdown and remove_bdev callbacks out of experimental features These two new callbacks have been introduced in v6.19, and it has been two releases in v7.1. During that time we have not yet exposed bugs related that two features, thus it's time to expose them for end users. It's especially important to expose remove_bdev callback to end users. That new callback makes btrfs automatically shutdown or go degraded when a device is missing (depending on if the fs can maintain RW), which is affecting end users. We want some feedback from early adopters. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig index ede184b6eda16..5e75438e0b738 100644 --- a/fs/btrfs/Kconfig +++ b/fs/btrfs/Kconfig @@ -112,8 +112,6 @@ config BTRFS_EXPERIMENTAL - large folio and block size (> page size) support - - shutdown ioctl and auto-degradation support - - asynchronous checksum generation for data writes - remap-tree - logical address remapping tree diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index b4d26ca9220a2..52137366b79be 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -2423,7 +2423,6 @@ static long btrfs_free_cached_objects(struct super_block *sb, struct shrink_cont return 0; } -#ifdef CONFIG_BTRFS_EXPERIMENTAL static int btrfs_remove_bdev(struct super_block *sb, struct block_device *bdev) { struct btrfs_fs_info *fs_info = btrfs_sb(sb); @@ -2481,7 +2480,6 @@ static void btrfs_shutdown(struct super_block *sb) btrfs_force_shutdown(fs_info); } -#endif static int btrfs_show_stats(struct seq_file *seq, struct dentry *root) { @@ -2511,10 +2509,8 @@ static const struct super_operations btrfs_super_ops = { .nr_cached_objects = btrfs_nr_cached_objects, .free_cached_objects = btrfs_free_cached_objects, .show_stats = btrfs_show_stats, -#ifdef CONFIG_BTRFS_EXPERIMENTAL .remove_bdev = btrfs_remove_bdev, .shutdown = btrfs_shutdown, -#endif }; static const struct file_operations btrfs_ctl_fops = {