Commit 05522109 authored by Omar Sandoval's avatar Omar Sandoval Committed by David Sterba

Btrfs: don't BUG_ON() in btrfs_truncate_inode_items()

btrfs_free_extent() can fail because of ENOMEM. There's no reason to
panic here, we can just abort the transaction.

Fixes: f4b9aa8d ("btrfs_truncate")
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent fd86a3a3
...@@ -4918,7 +4918,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, ...@@ -4918,7 +4918,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
extent_num_bytes, 0, extent_num_bytes, 0,
btrfs_header_owner(leaf), btrfs_header_owner(leaf),
ino, extent_offset); ino, extent_offset);
BUG_ON(ret); if (ret) {
btrfs_abort_transaction(trans, ret);
break;
}
if (btrfs_should_throttle_delayed_refs(trans, fs_info)) if (btrfs_should_throttle_delayed_refs(trans, fs_info))
btrfs_async_run_delayed_refs(fs_info, btrfs_async_run_delayed_refs(fs_info,
trans->delayed_ref_updates * 2, trans->delayed_ref_updates * 2,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment