btrfs-progs: missing tree-freeing statements added
authorGui Hecheng <guihc.fnst@cn.fujitsu.com>
Thu, 5 Sep 2013 02:38:56 +0000 (10:38 +0800)
committerChris Mason <chris.mason@fusionio.com>
Wed, 16 Oct 2013 12:20:42 +0000 (08:20 -0400)
The seen cache_tree in run_next_block freed.
Originally, this "missing" causes memory leaks, reported by valgrind.

Signed-off-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
cmds-check.c

index df18c43..b23353e 100644 (file)
@@ -3521,6 +3521,11 @@ static int run_next_block(struct btrfs_root *root,
                remove_cache_extent(nodes, cache);
                free(cache);
        }
+       cache = lookup_cache_extent(seen, bytenr, size);
+       if (cache) {
+               remove_cache_extent(seen, cache);
+               free(cache);
+       }
 
        /* fixme, get the real parent transid */
        buf = read_tree_block(root, bytenr, size, 0);