summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorChris Mason2007-04-26 22:46:15 +0200
committerDavid Woodhouse2007-04-26 22:46:15 +0200
commit9078a3e1e4e489dddc636c7bb8780349d4298743 (patch)
tree98597a438d60fc8722c7562b79cecaa303b4721d /fs/btrfs/disk-io.c
parentBtrfs: change around extent-tree prealloc (diff)
downloadkernel-qcow2-linux-9078a3e1e4e489dddc636c7bb8780349d4298743.tar.gz
kernel-qcow2-linux-9078a3e1e4e489dddc636c7bb8780349d4298743.tar.xz
kernel-qcow2-linux-9078a3e1e4e489dddc636c7bb8780349d4298743.zip
Btrfs: start of block group code
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 956727f015a5..1c27eb645510 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -529,6 +529,7 @@ struct btrfs_root *open_ctree(struct super_block *sb)
init_bit_radix(&fs_info->pending_del_radix);
INIT_RADIX_TREE(&fs_info->fs_roots_radix, GFP_NOFS);
INIT_RADIX_TREE(&fs_info->dev_radix, GFP_NOFS);
+ INIT_RADIX_TREE(&fs_info->block_group_radix, GFP_KERNEL);
INIT_LIST_HEAD(&fs_info->trans_list);
sb_set_blocksize(sb, 4096);
fs_info->running_transaction = NULL;
@@ -613,6 +614,8 @@ struct btrfs_root *open_ctree(struct super_block *sb)
BTRFS_EXTENT_TREE_OBJECTID, extent_root);
BUG_ON(ret);
+ btrfs_read_block_groups(extent_root);
+
fs_info->generation = btrfs_super_generation(disk_super) + 1;
memset(&fs_info->kobj, 0, sizeof(fs_info->kobj));
kobj_set_kset_s(fs_info, btrfs_subsys);
@@ -741,6 +744,7 @@ int close_ctree(struct btrfs_root *root)
iput(fs_info->btree_inode);
free_dev_radix(fs_info);
+ btrfs_free_block_groups(root->fs_info);
del_fs_roots(fs_info);
kfree(fs_info->extent_root);
kfree(fs_info->tree_root);