btrfs-progs: extent_io: Init eb->lru to avoid NULL pointer dereference
[platform/upstream/btrfs-progs.git] / extent_io.c
index eda1fb6..3117782 100644 (file)
@@ -564,6 +564,7 @@ static struct extent_buffer *__alloc_extent_buffer(struct extent_io_tree *tree,
        eb->cache_node.start = bytenr;
        eb->cache_node.size = blocksize;
        INIT_LIST_HEAD(&eb->recow);
+       INIT_LIST_HEAD(&eb->lru);
 
        return eb;
 }
@@ -587,7 +588,7 @@ static void free_extent_buffer_final(struct extent_buffer *eb)
        struct extent_io_tree *tree = eb->tree;
 
        BUG_ON(eb->refs);
-       BUG_ON(tree->cache_size < eb->len);
+       BUG_ON(tree && tree->cache_size < eb->len);
        list_del_init(&eb->lru);
        if (!(eb->flags & EXTENT_BUFFER_DUMMY)) {
                remove_cache_extent(&tree->cache, &eb->cache_node);