bcachefs: Update transactional triggers interface to pass old & new keys
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 10 Dec 2020 18:13:56 +0000 (13:13 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:49 +0000 (17:08 -0400)
commit719fe7fb555ad9a53bb847bfae1cad7170cb2591
tree4cff16bae6182d328467ab7d24d28fa413e7be53
parent66bddc6c2b389a65708c27e7e7a9969e645ca799
bcachefs: Update transactional triggers interface to pass old & new keys

This is needed to fix a bug where we're overflowing iterators within a
btree transaction, because we're updating the stripes btree (to update
block counts) and the stripes btree trigger is unnecessarily updating
the alloc btree - it doesn't need to update the alloc btree when the
pointers within a stripe aren't changing.

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