btrfs: do not BUG_ON() on failure to migrate space when replacing extents
authorFilipe Manana <fdmanana@suse.com>
Mon, 6 Jun 2022 09:41:19 +0000 (10:41 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 21 Jun 2022 12:43:27 +0000 (14:43 +0200)
commite6fa094720cfb2f1295ae4a9cbb166dfd8f2ec97
tree5001996ee3e5778e52e83e2aa79f19e581afd1f1
parentff7e802d7a58cd61692315af8ed10bfbcd7903db
btrfs: do not BUG_ON() on failure to migrate space when replacing extents

At btrfs_replace_file_extents(), if we fail to migrate reserved metadata
space from the transaction block reserve into the local block reserve,
we trigger a BUG_ON(). This is because it should not be possible to have
a failure here, as we reserved more space when we started the transaction
than the space we want to migrate. However having a BUG_ON() is way too
drastic, we can perfectly handle the failure and return the error to the
caller. So just do that instead, and add a WARN_ON() to make it easier
to notice the failure if it ever happens (which is particularly useful
for fstests, and the warning will trigger a failure of a test case).

Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/file.c