+ return ret;
+}
+
+/*
+ * Given a key and some data, insert an item into the tree.
+ * This does all the path init required, making room in the tree if needed.
+ */
+int btrfs_insert_item(struct btrfs_trans_handle *trans, struct btrfs_root
+ *root, struct btrfs_key *cpu_key, void *data, u32
+ data_size)
+{
+ int ret = 0;
+ struct btrfs_path path;
+ u8 *ptr;
+
+ btrfs_init_path(&path);
+ ret = btrfs_insert_empty_item(trans, root, &path, cpu_key, data_size);
+ if (!ret) {
+ ptr = btrfs_item_ptr(&path.nodes[0]->leaf, path.slots[0], u8);
+ memcpy(ptr, data, data_size);
+ }