Lines Matching defs:clone_root
67 struct clone_root {
90 struct clone_root *clone_roots;
1204 struct clone_root *cr = (struct clone_root *)elt;
1215 struct clone_root *cr1 = (struct clone_root *)e1;
1216 struct clone_root *cr2 = (struct clone_root *)e2;
1232 struct clone_root *found;
1237 sizeof(struct clone_root),
1301 struct clone_root **found)
1314 struct clone_root *cur_clone_root;
5077 struct clone_root *clone_root)
5084 "send_clone offset=%llu, len=%d, clone_root=%llu, clone_inode=%llu, clone_offset=%llu",
5085 offset, len, clone_root->root->root_key.objectid,
5086 clone_root->ino, clone_root->offset);
5104 if (clone_root->root == sctx->send_root) {
5105 ret = get_inode_info(sctx->send_root, clone_root->ino, NULL,
5109 ret = get_cur_path(sctx, clone_root->ino, gen, p);
5111 ret = get_inode_path(clone_root->root, clone_root->ino, p);
5125 if (!btrfs_is_empty_uuid(clone_root->root->root_item.received_uuid))
5127 clone_root->root->root_item.received_uuid);
5130 clone_root->root->root_item.uuid);
5132 le64_to_cpu(clone_root->root->root_item.ctransid));
5135 clone_root->offset);
5314 struct clone_root *clone_root,
5340 if (clone_root->offset == 0 &&
5352 ret = __get_inode_info(clone_root->root, path, clone_root->ino,
5380 key.objectid = clone_root->ino;
5382 key.offset = clone_root->offset;
5383 ret = btrfs_search_slot(NULL, clone_root->root, &key, path, 0, 0);
5388 if (key.objectid == clone_root->ino &&
5404 ret = btrfs_next_leaf(clone_root->root, path);
5418 if (key.objectid != clone_root->ino ||
5431 if (key.offset + ext_len <= clone_root->offset)
5434 if (key.offset > clone_root->offset) {
5436 u64 hole_len = key.offset - clone_root->offset;
5448 clone_root->offset += hole_len;
5452 if (key.offset >= clone_root->offset + len)
5465 clone_root->offset = key.offset;
5473 clone_root->offset += extent_offset;
5481 const u64 src_end = clone_root->offset + clone_len;
5507 slen = ALIGN_DOWN(src_end - clone_root->offset,
5511 clone_root);
5519 clone_root);
5551 clone_root->offset += clone_len;
5562 if (clone_root->root == sctx->send_root &&
5563 clone_root->ino == sctx->cur_ino &&
5564 clone_root->offset >= sctx->cur_inode_next_write_offset)
5584 struct clone_root *clone_root)
5595 if (clone_root && IS_ALIGNED(end, bs)) {
5604 ret = clone_range(sctx, clone_root, disk_byte, data_offset,
5946 struct clone_root *found_clone = NULL;
7243 struct btrfs_root *clone_root;
7282 if (arg->clone_sources_count > SZ_8M / sizeof(struct clone_root)) {
7360 clone_root = btrfs_get_fs_root(fs_info,
7362 if (IS_ERR(clone_root)) {
7363 ret = PTR_ERR(clone_root);
7366 spin_lock(&clone_root->root_item_lock);
7367 if (!btrfs_root_readonly(clone_root) ||
7368 btrfs_root_dead(clone_root)) {
7369 spin_unlock(&clone_root->root_item_lock);
7370 btrfs_put_root(clone_root);
7374 if (clone_root->dedupe_in_progress) {
7375 dedupe_in_progress_warn(clone_root);
7376 spin_unlock(&clone_root->root_item_lock);
7377 btrfs_put_root(clone_root);
7381 clone_root->send_in_progress++;
7382 spin_unlock(&clone_root->root_item_lock);
7384 sctx->clone_roots[i].root = clone_root;