Yan Zheng
2007-Nov-01 01:06 UTC
[Btrfs-devel][PATCH]Fix type and memory leak in extent-tree.c
Hello, This patch fixes a type in update_block_group and memory leak in btrfs_free_block_groups. Regards YZ ---- diff -r bc6bfcf7a158 extent-tree.c --- a/extent-tree.c Tue Oct 30 16:56:53 2007 -0400 +++ b/extent-tree.c Thu Nov 01 16:04:48 2007 +0800 @@ -591,13 +591,13 @@ static int update_block_group(struct btr cache->data = data; if (data) { - bit_to_clear = BLOCK_GROUP_DATA; - bit_to_set = BLOCK_GROUP_METADATA; + bit_to_clear = BLOCK_GROUP_METADATA; + bit_to_set = BLOCK_GROUP_DATA; cache->item.flags | BTRFS_BLOCK_GROUP_DATA; } else { - bit_to_clear = BLOCK_GROUP_METADATA; - bit_to_set = BLOCK_GROUP_DATA; + bit_to_clear = BLOCK_GROUP_DATA; + bit_to_set = BLOCK_GROUP_METADATA; cache->item.flags & ~BTRFS_BLOCK_GROUP_DATA; } @@ -1459,6 +1459,7 @@ int btrfs_free_block_groups(struct btrfs { u64 start; u64 end; + u64 ptr; int ret; while(1) { @@ -1466,6 +1467,9 @@ int btrfs_free_block_groups(struct btrfs &start, &end, (unsigned int)-1); if (ret) break; + ret = get_state_private(&info->block_group_cache, start, &ptr); + if (!ret) + kfree((void *)(unsigned long)ptr); clear_extent_bits(&info->block_group_cache, start, end, (unsigned int)-1, GFP_NOFS); }