bcachefs: bch2_fpunch_snapshot()
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 2 Jul 2025 17:28:55 +0000 (13:28 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 4 Jul 2025 19:45:22 +0000 (15:45 -0400)
commit63d6e9311999a3dd125ad3e0560a769e047fd7b1
tree2e8e5dd5afe4bd0a3560df145dd8272ed3b886cb
parent94426e4201fbb1c5ea4a697eb62a8b7cd7dfccbf
bcachefs: bch2_fpunch_snapshot()

Add a new version of fpunch for operating on a snapshot ID, not a
subvolume - and use it for "extent past end of inode" repair.

Previously, repair would try to delete everything at once, but deleting
too many extents at once can overflow the btree_trans bump allocator, as
well as causing other problems - the new helper properly uses
bch2_extent_trim_atomic().

Reported-and-tested-by: Edoardo Codeglia <bcachefs@404.blue>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fsck.c
fs/bcachefs/io_misc.c
fs/bcachefs/io_misc.h