bcachefs: Extents may now cross btree node boundaries
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 10 Feb 2021 21:13:57 +0000 (16:13 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:53 +0000 (17:08 -0400)
commit8042b5b715e6722fb26e40724b87f93b4b777acf
tree5758d125a3fd04085b0dc7c5f24b2def52f8dce0
parent7e1a3aa9dfcb9cd8f46085df86f158a1f23085dc
bcachefs: Extents may now cross btree node boundaries

When snapshots arrive, we won't necessarily be able to arbitrarily split
existis - when we need to split an existing extent, we'll have to check
if the extent was overwritten in child snapshots and if so emit a
whiteout for the split in the child snapshot.

Because extents couldn't span btree nodes previously, journal replay
would sometimes have to split existing extents. That's no good anymore,
but fortunately since extent handling has already been lifted above most
of the btree code there's no real need for that rule anymore.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_update_leaf.c
fs/bcachefs/buckets.c
fs/bcachefs/extent_update.c
fs/bcachefs/recovery.c
fs/bcachefs/super-io.c