diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 8bc5e8ccb091852dd53f262eb556fe5578a419a3..980e85a264c045359fe679323bd3a626b49db748 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -935,8 +935,10 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, } ret = find_extent_in_eb(eb, bytenr, *extent_item_pos, &eie); - ref->inode_list = eie; free_extent_buffer(eb); + if (ret < 0) + goto out; + ref->inode_list = eie; } ret = ulist_add_merge(refs, ref->parent, (uintptr_t)ref->inode_list,