bcachefs: BCH_SB_FEATURES_ALL
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 26 Feb 2020 22:34:27 +0000 (17:34 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:35 +0000 (17:08 -0400)
BCH_FEATURE_btree_ptr_v2 wasn't getting set on new filesystems, oops

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/recovery.c

index 575fb7143cc03206d4e5518a155d26d2b6bdaef1..d1c0a5d5580e786c4ed12510c9eedc94ade6bb66 100644 (file)
@@ -1317,6 +1317,11 @@ LE64_BITMASK(BCH_SB_ERASURE_CODE,        struct bch_sb, flags[3],  0, 16);
        x(incompressible,               10)     \
        x(btree_ptr_v2,                 11)
 
+#define BCH_SB_FEATURES_ALL                            \
+       ((1ULL << BCH_FEATURE_new_siphash)|             \
+        (1ULL << BCH_FEATURE_new_extent_overwrite)|    \
+        (1ULL << BCH_FEATURE_btree_ptr_v2))
+
 enum bch_sb_feature {
 #define x(f, n) BCH_FEATURE_##f,
        BCH_SB_FEATURES()
index c9d12f7c180e88705109ccd1ba246b29ab0d637e..1871485c079d931535918e4531f1dc3ea8b88429 100644 (file)
@@ -1008,9 +1008,7 @@ int bch2_fs_recovery(struct bch_fs *c)
                        c->disk_sb.sb->version_min =
                                le16_to_cpu(bcachefs_metadata_version_min);
                c->disk_sb.sb->version = le16_to_cpu(bcachefs_metadata_version_current);
-               c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_new_siphash;
-               c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_new_extent_overwrite;
-               c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_btree_ptr_v2;
+               c->disk_sb.sb->features[0] |= BCH_SB_FEATURES_ALL;
                write_sb = true;
        }
 
@@ -1129,8 +1127,7 @@ int bch2_fs_initialize(struct bch_fs *c)
        c->disk_sb.sb->version = c->disk_sb.sb->version_min =
                le16_to_cpu(bcachefs_metadata_version_current);
        c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_atomic_nlink;
-       c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_new_siphash;
-       c->disk_sb.sb->features[0] |= 1ULL << BCH_FEATURE_new_extent_overwrite;
+       c->disk_sb.sb->features[0] |= BCH_SB_FEATURES_ALL;
 
        SET_BCH_SB_INITIALIZED(c->disk_sb.sb, true);
        SET_BCH_SB_CLEAN(c->disk_sb.sb, false);