btrfs-progs: split metadata group creation out of make_root_dir
authorDavid Sterba <dsterba@suse.com>
Wed, 1 Jul 2015 17:12:38 +0000 (19:12 +0200)
committerDavid Sterba <dsterba@suse.com>
Wed, 1 Jul 2015 17:12:38 +0000 (19:12 +0200)
Signed-off-by: David Sterba <dsterba@suse.com>
mkfs.c

diff --git a/mkfs.c b/mkfs.c
index 59dd884..084dd27 100644 (file)
--- a/mkfs.c
+++ b/mkfs.c
@@ -59,11 +59,10 @@ struct mkfs_allocation {
        u64 system;
 };
 
-static int make_root_dir(struct btrfs_root *root, int mixed,
+static int create_metadata_block_groups(struct btrfs_root *root, int mixed,
                                struct mkfs_allocation *allocation)
 {
        struct btrfs_trans_handle *trans;
-       struct btrfs_key location;
        u64 bytes_used;
        u64 chunk_start = 0;
        u64 chunk_size = 0;
@@ -117,6 +116,20 @@ static int make_root_dir(struct btrfs_root *root, int mixed,
 
        root->fs_info->system_allocs = 0;
        btrfs_commit_transaction(trans, root);
+
+err:
+       return ret;
+}
+
+static int make_root_dir(struct btrfs_root *root, int mixed,
+                               struct mkfs_allocation *allocation)
+{
+       struct btrfs_trans_handle *trans;
+       struct btrfs_key location;
+       u64 chunk_start = 0;
+       u64 chunk_size = 0;
+       int ret;
+
        trans = btrfs_start_transaction(root, 1);
        BUG_ON(!trans);
 
@@ -1530,6 +1543,12 @@ int main(int ac, char **av)
        }
        root->fs_info->alloc_start = alloc_start;
 
+       ret = create_metadata_block_groups(root, mixed, &allocation);
+       if (ret) {
+               fprintf(stderr, "failed to create default block groups\n");
+               exit(1);
+       }
+
        ret = make_root_dir(root, mixed, &allocation);
        if (ret) {
                fprintf(stderr, "failed to setup the root directory\n");