On 10.05.2018 09:21, Omar Sandoval wrote:
> From: Omar Sandoval <osandov@xxxxxx>
>
> btrfs_free_extent() can fail because of ENOMEM. There's no reason to
> panic here, we can just abort the transaction.
>
> Fixes: f4b9aa8d3b87 ("btrfs_truncate")
> Signed-off-by: Omar Sandoval <osandov@xxxxxx>
Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>
> ---
> fs/btrfs/inode.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 79d1da01a90d..bd4975476f0e 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -4655,7 +4655,10 @@ int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
> extent_num_bytes, 0,
> btrfs_header_owner(leaf),
> ino, extent_offset);
> - BUG_ON(ret);
> + if (ret) {
> + btrfs_abort_transaction(trans, ret);
> + break;
> + }
> if (btrfs_should_throttle_delayed_refs(trans, fs_info))
> btrfs_async_run_delayed_refs(fs_info,
> trans->delayed_ref_updates * 2,
>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html