bcachefs: fix bch2_extent_merge()
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 21 May 2019 14:14:54 +0000 (10:14 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:22 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/extents.c

index d8d128cae5b4a32d0745e0bcb129e790631f541a..c5a0d6c8e63ae445a99a6ec4b3b7db15e0e875d8 100644 (file)
@@ -1529,6 +1529,9 @@ enum merge_result bch2_extent_merge(struct bch_fs *c,
        union bch_extent_entry *en_r = er.v->start;
        struct bch_extent_crc_unpacked crc_l, crc_r;
 
+       if (bkey_val_u64s(&l->k) != bkey_val_u64s(&r->k))
+               return BCH_MERGE_NOMERGE;
+
        crc_l = bch2_extent_crc_unpack(el.k, NULL);
 
        extent_for_each_entry(el, en_l) {