Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32b02538 authored by Josef Bacik's avatar Josef Bacik
Browse files

Btrfs: don't panic if we're trying to drop too many refs



This is just obnoxious.  Just print a message, abort the transaction, and return
an error.  Thanks,

Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
parent 171f6537
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -5596,7 +5596,13 @@ static int __btrfs_free_extent(struct btrfs_trans_handle *trans,
	}

	refs = btrfs_extent_refs(leaf, ei);
	BUG_ON(refs < refs_to_drop);
	if (refs < refs_to_drop) {
		btrfs_err(info, "trying to drop %d refs but we only have %Lu "
			  "for bytenr %Lu\n", refs_to_drop, refs, bytenr);
		ret = -EINVAL;
		btrfs_abort_transaction(trans, extent_root, ret);
		goto out;
	}
	refs -= refs_to_drop;

	if (refs > 0) {