]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Don't emit bch_sb_field_members_v1 if not required
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 16 Apr 2025 13:28:10 +0000 (09:28 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 22 May 2025 00:14:40 +0000 (20:14 -0400)
In 'bcachefs_metadata_extent_flags', we stopped requireding members_v1
to be present - only that either v1 or v2 is present.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/sb-members.c

index 9ab4d9a4b4217898f7dfc4f13cdbde0d748bfba3..f6a0b3de6bcab5e347b85abbd26797e5588850b8 100644 (file)
@@ -139,6 +139,11 @@ int bch2_sb_members_cpy_v2_v1(struct bch_sb_handle *disk_sb)
        struct bch_sb_field_members_v1 *mi1;
        struct bch_sb_field_members_v2 *mi2;
 
+       if (BCH_SB_VERSION_INCOMPAT(disk_sb->sb) > bcachefs_metadata_version_extent_flags) {
+               bch2_sb_field_resize(disk_sb, members_v1, 0);
+               return 0;
+       }
+
        mi1 = bch2_sb_field_resize(disk_sb, members_v1,
                        DIV_ROUND_UP(sizeof(*mi1) + BCH_MEMBER_V1_BYTES *
                                     disk_sb->sb->nr_devices, sizeof(u64)));