From: Kent Overstreet Date: Sat, 14 Sep 2019 14:45:46 +0000 (-0400) Subject: bcachefs: Add missing bch2_btree_node_iter_fix() calls X-Git-Tag: v6.7-rc1~201^2~2350 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4cac0bf2c25d9056c4cc24c27948774fa2591c5a;p=thirdparty%2Flinux.git bcachefs: Add missing bch2_btree_node_iter_fix() calls With multiple iterators, if another iterator points to the key being modified, we need to call bch2_btree_node_iter_fix() to re-unpack the key into the iter->k Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index 1d400808d8424..2cf97df6b85be 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -1138,6 +1138,8 @@ extent_squash(struct bch_fs *c, struct btree_iter *iter, __bch2_cut_front(insert->k.p, k); BUG_ON(bkey_deleted(k.k)); extent_save(l->b, _k, k.k); + bch2_btree_node_iter_fix(iter, l->b, &l->iter, + _k, _k->u64s, _k->u64s); verify_modified_extent(iter, _k); break; @@ -1207,6 +1209,8 @@ extent_squash(struct bch_fs *c, struct btree_iter *iter, __bch2_cut_front(insert->k.p, k); BUG_ON(bkey_deleted(k.k)); extent_save(l->b, _k, k.k); + bch2_btree_node_iter_fix(iter, l->b, &l->iter, + _k, _k->u64s, _k->u64s); verify_modified_extent(iter, _k); extent_bset_insert(c, iter, &split.k);