On 10.05.2018 09:21, Omar Sandoval wrote:
> From: Omar Sandoval <[email protected]>
> 
> 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 <[email protected]>

Reviewed-by: Nikolay Borisov <[email protected]>

> ---
>  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to