]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: fix compat mask in error messages in btrfs_check_features()
authorMark Harmstone <mark@harmstone.com>
Tue, 17 Feb 2026 17:46:41 +0000 (17:46 +0000)
committerDavid Sterba <dsterba@suse.com>
Thu, 26 Feb 2026 14:03:28 +0000 (15:03 +0100)
Commit d7f67ac9a928 ("btrfs: relax block-group-tree feature dependency
checks") introduced a regression when it comes to handling unsupported
incompat or compat_ro flags. Beforehand we only printed the flags that
we didn't recognize, afterwards we printed them all, which is less
useful. Fix the error handling so it behaves like it used to.

Fixes: d7f67ac9a928 ("btrfs: relax block-group-tree feature dependency checks")
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Mark Harmstone <mark@harmstone.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/disk-io.c

index 6a38489a4e18b3d9235d79d565045ca5404b3c9f..49987334dd15631dc4adf01d312f8a62d24546a3 100644 (file)
@@ -3187,7 +3187,7 @@ int btrfs_check_features(struct btrfs_fs_info *fs_info, bool is_rw_mount)
        if (incompat & ~BTRFS_FEATURE_INCOMPAT_SUPP) {
                btrfs_err(fs_info,
                "cannot mount because of unknown incompat features (0x%llx)",
-                   incompat);
+                   incompat & ~BTRFS_FEATURE_INCOMPAT_SUPP);
                return -EINVAL;
        }
 
@@ -3219,7 +3219,7 @@ int btrfs_check_features(struct btrfs_fs_info *fs_info, bool is_rw_mount)
        if (compat_ro_unsupp && is_rw_mount) {
                btrfs_err(fs_info,
        "cannot mount read-write because of unknown compat_ro features (0x%llx)",
-                      compat_ro);
+                      compat_ro_unsupp);
                return -EINVAL;
        }
 
@@ -3232,7 +3232,7 @@ int btrfs_check_features(struct btrfs_fs_info *fs_info, bool is_rw_mount)
            !btrfs_test_opt(fs_info, NOLOGREPLAY)) {
                btrfs_err(fs_info,
 "cannot replay dirty log with unsupported compat_ro features (0x%llx), try rescue=nologreplay",
-                         compat_ro);
+                         compat_ro_unsupp);
                return -EINVAL;
        }