diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index 13c9a48c83b02c7217d83682b60c8deb3f8577e7..97cafe7291b80b8850323887685df34f370b76e7 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -1171,8 +1171,12 @@ struct backref_node *build_backref_tree(struct reloc_control *rc, lower = list_entry(useless.next, struct backref_node, list); list_del_init(&lower->list); + if (lower == node) + node = NULL; free_backref_node(cache, lower); } + + free_backref_node(cache, node); return ERR_PTR(err); } ASSERT(!node || !node->detached);