]> 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:30:56 +0000 (16:30 +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 61d2ebdd01caf04c2cc1704054ed6d892af3bcf4..471c7f1c0fa0e5ec178420c9cd5a38fa9afd23ec 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,
@@ -697,12 +700,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;
@@ -979,6 +979,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);