-int dup_item_to_inode(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
- struct btrfs_path *path,
- struct extent_buffer *leaf,
- int slot,
- struct btrfs_key *key,
- u64 destino)
-{
- char *dup;
- int len = btrfs_item_size_nr(leaf, slot);
- struct btrfs_key ckey = *key;
- int ret = 0;
-
- dup = kmalloc(len, GFP_NOFS);
- if (!dup)
- return -ENOMEM;
-
- read_extent_buffer(leaf, dup, btrfs_item_ptr_offset(leaf, slot), len);
- btrfs_release_path(root, path);
-
- ckey.objectid = destino;
- ret = btrfs_insert_item(trans, root, &ckey, dup, len);
- kfree(dup);
- return ret;
-}
-