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
