* [PATCH] update mkfs for the new space balancing code
@ 2008-09-25 16:58 Zheng Yan
0 siblings, 0 replies; only message in thread
From: Zheng Yan @ 2008-09-25 16:58 UTC (permalink / raw)
To: linux-btrfs, Chris Mason
Hello,
The new space balancing code needs a subvol to store the
temporary inode for data extent relocation.
Regards
Yan Zheng
---
diff -r 35eb00b579c4 mkfs.c
--- a/mkfs.c Tue Sep 23 12:29:10 2008 -0400
+++ b/mkfs.c Thu Sep 25 21:50:51 2008 +0800
@@ -229,6 +229,32 @@
(allowed & data_profile));
BUG_ON(ret);
}
+ return 0;
+}
+
+static int create_data_reloc_tree(struct btrfs_trans_handle *trans,
+ struct btrfs_root *root)
+{
+ struct btrfs_key location;
+ struct btrfs_root_item root_item;
+ struct extent_buffer *tmp;
+ u64 objectid = BTRFS_DATA_RELOC_TREE_OBJECTID;
+ int ret;
+
+ ret = btrfs_copy_root(trans, root, root->node, &tmp, objectid);
+ BUG_ON(ret);
+
+ memcpy(&root_item, &root->root_item, sizeof(root_item));
+ btrfs_set_root_bytenr(&root_item, tmp->start);
+ btrfs_set_root_level(&root_item, btrfs_header_level(tmp));
+ free_extent_buffer(tmp);
+
+ location.objectid = objectid;
+ location.type = BTRFS_ROOT_ITEM_KEY;
+ location.offset = trans->transid;
+ ret = btrfs_insert_root(trans, root->fs_info->tree_root,
+ &location, &root_item);
+ BUG_ON(ret);
return 0;
}
@@ -459,6 +485,9 @@
metadata_profile);
BUG_ON(ret);
+ ret = create_data_reloc_tree(trans, root);
+ BUG_ON(ret);
+
printf("fs created label %s on %s\n\tnodesize %u leafsize %u "
"sectorsize %u size %s\n",
label, first_file, nodesize, leafsize, sectorsize,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-09-25 16:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-25 16:58 [PATCH] update mkfs for the new space balancing code Zheng Yan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.