bcachefs: fix triggers for stripes btree
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 17 Apr 2019 19:49:45 +0000 (15:49 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:20 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/buckets.c

index 7a05ba5fd5891dd4fc6bba710389a87b0299b3ef..e9c5889b2c0fe7808c621b956f14156f8a2fd414 100644 (file)
@@ -1107,6 +1107,15 @@ void bch2_mark_update(struct btree_trans *trans,
        if (unlikely(trans->flags & BTREE_INSERT_NOMARK_OVERWRITES))
                return;
 
+       /*
+        * For non extents, we only mark the new key, not the key being
+        * overwritten - unless we're actually deleting:
+        */
+       if ((iter->btree_id == BTREE_ID_ALLOC ||
+            iter->btree_id == BTREE_ID_EC) &&
+           !bkey_deleted(&insert->k->k))
+               return;
+
        while ((_k = bch2_btree_node_iter_peek_filter(&node_iter, b,
                                                      KEY_TYPE_discard))) {
                struct bkey             unpacked;