]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: restore mount option info messages during mount
authorKyoji Ogasawara <sawara04.o@gmail.com>
Tue, 12 Aug 2025 18:00:06 +0000 (03:00 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:34:15 +0000 (16:34 +0200)
commit b435ab556bea875c088485f271ef2709ca1d75f5 upstream.

After the fsconfig migration in 6.8, mount option info messages are no
longer displayed during mount operations because btrfs_emit_options() is
only called during remount, not during initial mount.

Fix this by calling btrfs_emit_options() in btrfs_fill_super() after
open_ctree() succeeds. Additionally, prevent log duplication by ensuring
btrfs_check_options() handles validation with warn-level and err-level
messages, while btrfs_emit_options() provides info-level messages.

Fixes: eddb1a433f26 ("btrfs: add reconfigure callback for fs_context")
CC: stable@vger.kernel.org # 6.8+
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Kyoji Ogasawara <sawara04.o@gmail.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/super.c

index 51b910e2774e4ca33d729b24b9f8d383ca552afc..3d8735c409501d2b44065ad0174847653df367d0 100644 (file)
@@ -88,6 +88,9 @@ struct btrfs_fs_context {
        refcount_t refs;
 };
 
+static void btrfs_emit_options(struct btrfs_fs_info *info,
+                              struct btrfs_fs_context *old);
+
 enum {
        Opt_acl,
        Opt_clear_cache,
@@ -689,12 +692,9 @@ bool btrfs_check_options(const struct btrfs_fs_info *info,
 
        if (!test_bit(BTRFS_FS_STATE_REMOUNTING, &info->fs_state)) {
                if (btrfs_raw_test_opt(*mount_opt, SPACE_CACHE)) {
-                       btrfs_info(info, "disk space caching is enabled");
                        btrfs_warn(info,
 "space cache v1 is being deprecated and will be removed in a future release, please use -o space_cache=v2");
                }
-               if (btrfs_raw_test_opt(*mount_opt, FREE_SPACE_TREE))
-                       btrfs_info(info, "using free-space-tree");
        }
 
        return ret;
@@ -971,6 +971,8 @@ static int btrfs_fill_super(struct super_block *sb,
                return err;
        }
 
+       btrfs_emit_options(fs_info, NULL);
+
        inode = btrfs_iget(BTRFS_FIRST_FREE_OBJECTID, fs_info->fs_root);
        if (IS_ERR(inode)) {
                err = PTR_ERR(inode);