diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index 81735d19feff..362df6e96717 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c @@ -4599,9 +4599,9 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root, if (btrfs_header_nritems(leaf) == 0) { path->slots[1] = slot; ret = btrfs_del_leaf(trans, root, path, leaf); + free_extent_buffer(leaf); if (ret < 0) return ret; - free_extent_buffer(leaf); ret = 0; } else { /* if we're still in the path, make sure