- btrfs_release_path(root, &path);
- return ret;
-}
-
-int btrfs_insert_inode_map(struct btrfs_trans_handle *trans,
- struct btrfs_root *fs_root,
- u64 objectid, struct btrfs_key *location)
-{
- int ret = 0;
- struct btrfs_path path;
- struct btrfs_inode_map_item *inode_item;
- struct btrfs_key key;
- struct btrfs_root *inode_root = fs_root->fs_info->inode_root;
-
- key.objectid = objectid;
- key.flags = 0;
- btrfs_set_key_type(&key, BTRFS_INODE_MAP_ITEM_KEY);
- key.offset = 0;
- btrfs_init_path(&path);
- ret = btrfs_insert_empty_item(trans, inode_root, &path, &key,
- sizeof(struct btrfs_inode_map_item));
- if (ret)
- goto out;
-
- inode_item = btrfs_item_ptr(&path.nodes[0]->leaf, path.slots[0],
- struct btrfs_inode_map_item);
- btrfs_cpu_key_to_disk(&inode_item->key, location);
-out:
- btrfs_release_path(inode_root, &path);