Lines Matching refs:ret
269 int ret; member
395 int ret; in fs_path_prepare_for_add() local
401 ret = fs_path_ensure_buf(p, new_len); in fs_path_prepare_for_add()
402 if (ret < 0) in fs_path_prepare_for_add()
419 return ret; in fs_path_prepare_for_add()
424 int ret; in fs_path_add() local
427 ret = fs_path_prepare_for_add(p, name_len, &prepared); in fs_path_add()
428 if (ret < 0) in fs_path_add()
433 return ret; in fs_path_add()
438 int ret; in fs_path_add_path() local
441 ret = fs_path_prepare_for_add(p, p2->end - p2->start, &prepared); in fs_path_add_path()
442 if (ret < 0) in fs_path_add_path()
447 return ret; in fs_path_add_path()
454 int ret; in fs_path_add_from_extent_buffer() local
457 ret = fs_path_prepare_for_add(p, len, &prepared); in fs_path_add_from_extent_buffer()
458 if (ret < 0) in fs_path_add_from_extent_buffer()
464 return ret; in fs_path_add_from_extent_buffer()
469 int ret; in fs_path_copy() local
474 ret = fs_path_add_path(p, from); in fs_path_copy()
476 return ret; in fs_path_copy()
511 int ret; in write_buf() local
519 ret = vfs_write(filp, (__force const char __user *)buf + pos, in write_buf()
525 if (ret < 0) in write_buf()
527 if (ret == 0) { in write_buf()
528 ret = -EIO; in write_buf()
531 pos += ret; in write_buf()
534 ret = 0; in write_buf()
538 return ret; in write_buf()
595 ret = tlv_put(sctx, attrtype, attrlen, data); \
596 if (ret < 0) \
602 ret = tlv_put_u##bits(sctx, attrtype, value); \
603 if (ret < 0) \
613 ret = tlv_put_string(sctx, attrtype, str, len); \
614 if (ret < 0) \
619 ret = tlv_put_string(sctx, attrtype, p->start, \
621 if (ret < 0) \
626 ret = tlv_put_uuid(sctx, attrtype, uuid); \
627 if (ret < 0) \
632 ret = tlv_put_btrfs_timespec(sctx, attrtype, eb, ts); \
633 if (ret < 0) \
669 int ret; in send_cmd() local
680 ret = write_buf(sctx->send_filp, sctx->send_buf, sctx->send_size, in send_cmd()
687 return ret; in send_cmd()
696 int ret; in send_rename() local
700 ret = begin_cmd(sctx, BTRFS_SEND_C_RENAME); in send_rename()
701 if (ret < 0) in send_rename()
707 ret = send_cmd(sctx); in send_rename()
711 return ret; in send_rename()
720 int ret; in send_link() local
724 ret = begin_cmd(sctx, BTRFS_SEND_C_LINK); in send_link()
725 if (ret < 0) in send_link()
731 ret = send_cmd(sctx); in send_link()
735 return ret; in send_link()
743 int ret; in send_unlink() local
747 ret = begin_cmd(sctx, BTRFS_SEND_C_UNLINK); in send_unlink()
748 if (ret < 0) in send_unlink()
753 ret = send_cmd(sctx); in send_unlink()
757 return ret; in send_unlink()
765 int ret; in send_rmdir() local
769 ret = begin_cmd(sctx, BTRFS_SEND_C_RMDIR); in send_rmdir()
770 if (ret < 0) in send_rmdir()
775 ret = send_cmd(sctx); in send_rmdir()
779 return ret; in send_rmdir()
789 int ret; in __get_inode_info() local
796 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in __get_inode_info()
797 if (ret) { in __get_inode_info()
798 if (ret > 0) in __get_inode_info()
799 ret = -ENOENT; in __get_inode_info()
800 return ret; in __get_inode_info()
818 return ret; in __get_inode_info()
827 int ret; in get_inode_info() local
832 ret = __get_inode_info(root, path, ino, size, gen, mode, uid, gid, in get_inode_info()
835 return ret; in get_inode_info()
865 int ret = 0; in iterate_inode_ref() local
918 ret = PTR_ERR(start); in iterate_inode_ref()
923 ret = fs_path_ensure_buf(p, in iterate_inode_ref()
925 if (ret < 0) in iterate_inode_ref()
932 ret = PTR_ERR(start); in iterate_inode_ref()
939 ret = fs_path_add_from_extent_buffer(p, eb, name_off, in iterate_inode_ref()
941 if (ret < 0) in iterate_inode_ref()
946 ret = iterate(num, dir, index, p, ctx); in iterate_inode_ref()
947 if (ret) in iterate_inode_ref()
955 return ret; in iterate_inode_ref()
974 int ret = 0; in iterate_dir_item() local
999 ret = -ENOMEM; in iterate_dir_item()
1020 ret = -ENAMETOOLONG; in iterate_dir_item()
1024 ret = -E2BIG; in iterate_dir_item()
1032 ret = -ENAMETOOLONG; in iterate_dir_item()
1053 ret = -ENOMEM; in iterate_dir_item()
1066 ret = iterate(num, &di_key, buf, name_len, buf + name_len, in iterate_dir_item()
1068 if (ret < 0) in iterate_dir_item()
1070 if (ret) { in iterate_dir_item()
1071 ret = 0; in iterate_dir_item()
1080 return ret; in iterate_dir_item()
1086 int ret; in __copy_first_ref() local
1089 ret = fs_path_copy(pt, p); in __copy_first_ref()
1090 if (ret < 0) in __copy_first_ref()
1091 return ret; in __copy_first_ref()
1104 int ret; in get_inode_path() local
1118 ret = btrfs_search_slot_for_read(root, &key, p, 1, 0); in get_inode_path()
1119 if (ret < 0) in get_inode_path()
1121 if (ret) { in get_inode_path()
1122 ret = 1; in get_inode_path()
1129 ret = -ENOENT; in get_inode_path()
1133 ret = iterate_inode_ref(root, p, &found_key, 1, in get_inode_path()
1135 if (ret < 0) in get_inode_path()
1137 ret = 0; in get_inode_path()
1141 return ret; in get_inode_path()
1197 int ret; in __iterate_backrefs() local
1218 ret = __get_inode_info(found->root, bctx->path, ino, &i_size, NULL, NULL, in __iterate_backrefs()
1221 if (ret < 0) in __iterate_backrefs()
1222 return ret; in __iterate_backrefs()
1279 int ret; in find_extent_clone() local
1304 ret = -ENOMEM; in find_extent_clone()
1316 ret = 0; in find_extent_clone()
1324 ret = -ENOENT; in find_extent_clone()
1332 ret = -ENOENT; in find_extent_clone()
1338 ret = extent_from_logical(sctx->send_root->fs_info, disk_byte, tmp_path, in find_extent_clone()
1343 if (ret < 0) in find_extent_clone()
1346 ret = -EIO; in find_extent_clone()
1382 ret = iterate_extent_inodes(sctx->send_root->fs_info, in find_extent_clone()
1386 if (ret < 0) in find_extent_clone()
1391 ret = -EIO; in find_extent_clone()
1431 ret = 0; in find_extent_clone()
1433 ret = -ENOENT; in find_extent_clone()
1439 return ret; in find_extent_clone()
1446 int ret; in read_symlink() local
1462 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in read_symlink()
1463 if (ret < 0) in read_symlink()
1465 if (ret) { in read_symlink()
1477 ret = -EIO; in read_symlink()
1491 ret = fs_path_add_from_extent_buffer(dest, path->nodes[0], off, len); in read_symlink()
1495 return ret; in read_symlink()
1506 int ret = 0; in gen_unique_name() local
1527 ret = PTR_ERR(di); in gen_unique_name()
1538 ret = 0; in gen_unique_name()
1547 ret = PTR_ERR(di); in gen_unique_name()
1559 ret = fs_path_add(dest, tmp, strlen(tmp)); in gen_unique_name()
1563 return ret; in gen_unique_name()
1576 int ret; in get_cur_inode_state() local
1582 ret = get_inode_info(sctx->send_root, ino, NULL, &left_gen, NULL, NULL, in get_cur_inode_state()
1584 if (ret < 0 && ret != -ENOENT) in get_cur_inode_state()
1586 left_ret = ret; in get_cur_inode_state()
1591 ret = get_inode_info(sctx->parent_root, ino, NULL, &right_gen, in get_cur_inode_state()
1593 if (ret < 0 && ret != -ENOENT) in get_cur_inode_state()
1595 right_ret = ret; in get_cur_inode_state()
1600 ret = inode_state_no_change; in get_cur_inode_state()
1603 ret = inode_state_did_create; in get_cur_inode_state()
1605 ret = inode_state_will_create; in get_cur_inode_state()
1608 ret = inode_state_did_delete; in get_cur_inode_state()
1610 ret = inode_state_will_delete; in get_cur_inode_state()
1612 ret = -ENOENT; in get_cur_inode_state()
1617 ret = inode_state_did_create; in get_cur_inode_state()
1619 ret = inode_state_will_create; in get_cur_inode_state()
1621 ret = -ENOENT; in get_cur_inode_state()
1626 ret = inode_state_did_delete; in get_cur_inode_state()
1628 ret = inode_state_will_delete; in get_cur_inode_state()
1630 ret = -ENOENT; in get_cur_inode_state()
1633 ret = -ENOENT; in get_cur_inode_state()
1637 return ret; in get_cur_inode_state()
1642 int ret; in is_inode_existent() local
1644 ret = get_cur_inode_state(sctx, ino, gen); in is_inode_existent()
1645 if (ret < 0) in is_inode_existent()
1648 if (ret == inode_state_no_change || in is_inode_existent()
1649 ret == inode_state_did_create || in is_inode_existent()
1650 ret == inode_state_will_delete) in is_inode_existent()
1651 ret = 1; in is_inode_existent()
1653 ret = 0; in is_inode_existent()
1656 return ret; in is_inode_existent()
1667 int ret = 0; in lookup_dir_item_inode() local
1679 ret = -ENOENT; in lookup_dir_item_inode()
1683 ret = PTR_ERR(di); in lookup_dir_item_inode()
1688 ret = -ENOENT; in lookup_dir_item_inode()
1696 return ret; in lookup_dir_item_inode()
1706 int ret; in get_first_ref() local
1721 ret = btrfs_search_slot_for_read(root, &key, path, 1, 0); in get_first_ref()
1722 if (ret < 0) in get_first_ref()
1724 if (!ret) in get_first_ref()
1727 if (ret || found_key.objectid != ino || in get_first_ref()
1730 ret = -ENOENT; in get_first_ref()
1739 ret = fs_path_add_from_extent_buffer(name, path->nodes[0], in get_first_ref()
1748 ret = fs_path_add_from_extent_buffer(name, path->nodes[0], in get_first_ref()
1752 if (ret < 0) in get_first_ref()
1757 ret = get_inode_info(root, parent_dir, NULL, dir_gen, NULL, in get_first_ref()
1759 if (ret < 0) in get_first_ref()
1767 return ret; in get_first_ref()
1774 int ret; in is_first_ref() local
1782 ret = get_first_ref(root, ino, &tmp_dir, NULL, tmp_name); in is_first_ref()
1783 if (ret < 0) in is_first_ref()
1787 ret = 0; in is_first_ref()
1791 ret = !memcmp(tmp_name->start, name, name_len); in is_first_ref()
1795 return ret; in is_first_ref()
1812 int ret = 0; in will_overwrite_ref() local
1820 ret = is_inode_existent(sctx, dir, dir_gen); in will_overwrite_ref()
1821 if (ret <= 0) in will_overwrite_ref()
1830 ret = get_inode_info(sctx->parent_root, dir, NULL, &gen, NULL, in will_overwrite_ref()
1832 if (ret < 0 && ret != -ENOENT) in will_overwrite_ref()
1834 if (ret) { in will_overwrite_ref()
1835 ret = 0; in will_overwrite_ref()
1842 ret = lookup_dir_item_inode(sctx->parent_root, dir, name, name_len, in will_overwrite_ref()
1844 if (ret < 0 && ret != -ENOENT) in will_overwrite_ref()
1846 if (ret) { in will_overwrite_ref()
1847 ret = 0; in will_overwrite_ref()
1857 ret = get_inode_info(sctx->parent_root, other_inode, NULL, in will_overwrite_ref()
1859 if (ret < 0) in will_overwrite_ref()
1862 ret = 1; in will_overwrite_ref()
1865 ret = 0; in will_overwrite_ref()
1869 return ret; in will_overwrite_ref()
1884 int ret = 0; in did_overwrite_ref() local
1892 ret = is_inode_existent(sctx, dir, dir_gen); in did_overwrite_ref()
1893 if (ret <= 0) in did_overwrite_ref()
1897 ret = lookup_dir_item_inode(sctx->send_root, dir, name, name_len, in did_overwrite_ref()
1899 if (ret < 0 && ret != -ENOENT) in did_overwrite_ref()
1901 if (ret) { in did_overwrite_ref()
1903 ret = 0; in did_overwrite_ref()
1907 ret = get_inode_info(sctx->send_root, ow_inode, NULL, &gen, NULL, NULL, in did_overwrite_ref()
1909 if (ret < 0) in did_overwrite_ref()
1913 ret = 0; in did_overwrite_ref()
1919 ret = 1; in did_overwrite_ref()
1921 ret = 0; in did_overwrite_ref()
1924 return ret; in did_overwrite_ref()
1934 int ret = 0; in did_overwrite_first_ref() local
1946 ret = get_first_ref(sctx->parent_root, ino, &dir, &dir_gen, name); in did_overwrite_first_ref()
1947 if (ret < 0) in did_overwrite_first_ref()
1950 ret = did_overwrite_ref(sctx, dir, dir_gen, ino, gen, in did_overwrite_first_ref()
1955 return ret; in did_overwrite_first_ref()
1967 int ret = 0; in name_cache_insert() local
1980 ret = radix_tree_insert(&sctx->name_cache, nce->ino, nce_head); in name_cache_insert()
1981 if (ret < 0) { in name_cache_insert()
1984 return ret; in name_cache_insert()
1991 return ret; in name_cache_insert()
2091 int ret; in __get_cur_name_and_parent() local
2110 ret = fs_path_add(dest, nce->name, nce->name_len); in __get_cur_name_and_parent()
2111 if (ret < 0) in __get_cur_name_and_parent()
2113 ret = nce->ret; in __get_cur_name_and_parent()
2123 ret = is_inode_existent(sctx, ino, gen); in __get_cur_name_and_parent()
2124 if (ret < 0) in __get_cur_name_and_parent()
2127 if (!ret) { in __get_cur_name_and_parent()
2128 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2129 if (ret < 0) in __get_cur_name_and_parent()
2131 ret = 1; in __get_cur_name_and_parent()
2140 ret = get_first_ref(sctx->send_root, ino, in __get_cur_name_and_parent()
2143 ret = get_first_ref(sctx->parent_root, ino, in __get_cur_name_and_parent()
2145 if (ret < 0) in __get_cur_name_and_parent()
2152 ret = did_overwrite_ref(sctx, *parent_ino, *parent_gen, ino, gen, in __get_cur_name_and_parent()
2154 if (ret < 0) in __get_cur_name_and_parent()
2156 if (ret) { in __get_cur_name_and_parent()
2158 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2159 if (ret < 0) in __get_cur_name_and_parent()
2161 ret = 1; in __get_cur_name_and_parent()
2170 ret = -ENOMEM; in __get_cur_name_and_parent()
2179 nce->ret = ret; in __get_cur_name_and_parent()
2189 ret = nce_ret; in __get_cur_name_and_parent()
2193 return ret; in __get_cur_name_and_parent()
2224 int ret = 0; in get_cur_path() local
2232 ret = -ENOMEM; in get_cur_path()
2243 ret = gen_unique_name(sctx, ino, gen, name); in get_cur_path()
2244 if (ret < 0) in get_cur_path()
2246 ret = fs_path_add_path(dest, name); in get_cur_path()
2251 ret = get_first_ref(sctx->parent_root, ino, in get_cur_path()
2254 ret = __get_cur_name_and_parent(sctx, ino, gen, in get_cur_path()
2257 if (ret) in get_cur_path()
2261 if (ret < 0) in get_cur_path()
2264 ret = fs_path_add_path(dest, name); in get_cur_path()
2265 if (ret < 0) in get_cur_path()
2274 if (!ret) in get_cur_path()
2276 return ret; in get_cur_path()
2284 int ret; in send_subvol_begin() local
2308 ret = btrfs_search_slot_for_read(send_root->fs_info->tree_root, in send_subvol_begin()
2310 if (ret < 0) in send_subvol_begin()
2312 if (ret) { in send_subvol_begin()
2313 ret = -ENOENT; in send_subvol_begin()
2321 ret = -ENOENT; in send_subvol_begin()
2330 ret = begin_cmd(sctx, BTRFS_SEND_C_SNAPSHOT); in send_subvol_begin()
2331 if (ret < 0) in send_subvol_begin()
2334 ret = begin_cmd(sctx, BTRFS_SEND_C_SUBVOL); in send_subvol_begin()
2335 if (ret < 0) in send_subvol_begin()
2351 ret = send_cmd(sctx); in send_subvol_begin()
2357 return ret; in send_subvol_begin()
2362 int ret = 0; in send_truncate() local
2371 ret = begin_cmd(sctx, BTRFS_SEND_C_TRUNCATE); in send_truncate()
2372 if (ret < 0) in send_truncate()
2375 ret = get_cur_path(sctx, ino, gen, p); in send_truncate()
2376 if (ret < 0) in send_truncate()
2381 ret = send_cmd(sctx); in send_truncate()
2386 return ret; in send_truncate()
2391 int ret = 0; in send_chmod() local
2400 ret = begin_cmd(sctx, BTRFS_SEND_C_CHMOD); in send_chmod()
2401 if (ret < 0) in send_chmod()
2404 ret = get_cur_path(sctx, ino, gen, p); in send_chmod()
2405 if (ret < 0) in send_chmod()
2410 ret = send_cmd(sctx); in send_chmod()
2415 return ret; in send_chmod()
2420 int ret = 0; in send_chown() local
2429 ret = begin_cmd(sctx, BTRFS_SEND_C_CHOWN); in send_chown()
2430 if (ret < 0) in send_chown()
2433 ret = get_cur_path(sctx, ino, gen, p); in send_chown()
2434 if (ret < 0) in send_chown()
2440 ret = send_cmd(sctx); in send_chown()
2445 return ret; in send_chown()
2450 int ret = 0; in send_utimes() local
2466 ret = -ENOMEM; in send_utimes()
2473 ret = btrfs_search_slot(NULL, sctx->send_root, &key, path, 0, 0); in send_utimes()
2474 if (ret < 0) in send_utimes()
2481 ret = begin_cmd(sctx, BTRFS_SEND_C_UTIMES); in send_utimes()
2482 if (ret < 0) in send_utimes()
2485 ret = get_cur_path(sctx, ino, gen, p); in send_utimes()
2486 if (ret < 0) in send_utimes()
2494 ret = send_cmd(sctx); in send_utimes()
2500 return ret; in send_utimes()
2510 int ret = 0; in send_create_inode() local
2524 ret = get_inode_info(sctx->send_root, ino, NULL, &gen, &mode, in send_create_inode()
2526 if (ret < 0) in send_create_inode()
2549 ret = -ENOTSUPP; in send_create_inode()
2553 ret = begin_cmd(sctx, cmd); in send_create_inode()
2554 if (ret < 0) in send_create_inode()
2557 ret = gen_unique_name(sctx, ino, gen, p); in send_create_inode()
2558 if (ret < 0) in send_create_inode()
2566 ret = read_symlink(sctx->send_root, ino, p); in send_create_inode()
2567 if (ret < 0) in send_create_inode()
2576 ret = send_cmd(sctx); in send_create_inode()
2577 if (ret < 0) in send_create_inode()
2584 return ret; in send_create_inode()
2594 int ret = 0; in did_create_dir() local
2605 ret = -ENOMEM; in did_create_dir()
2612 ret = btrfs_search_slot(NULL, sctx->send_root, &key, path, 0, 0); in did_create_dir()
2613 if (ret < 0) in did_create_dir()
2620 ret = btrfs_next_leaf(sctx->send_root, path); in did_create_dir()
2621 if (ret < 0) { in did_create_dir()
2623 } else if (ret > 0) { in did_create_dir()
2624 ret = 0; in did_create_dir()
2633 ret = 0; in did_create_dir()
2642 ret = 1; in did_create_dir()
2651 return ret; in did_create_dir()
2662 int ret; in send_create_inode_if_needed() local
2665 ret = did_create_dir(sctx, sctx->cur_ino); in send_create_inode_if_needed()
2666 if (ret < 0) in send_create_inode_if_needed()
2668 if (ret) { in send_create_inode_if_needed()
2669 ret = 0; in send_create_inode_if_needed()
2674 ret = send_create_inode(sctx, sctx->cur_ino); in send_create_inode_if_needed()
2675 if (ret < 0) in send_create_inode_if_needed()
2679 return ret; in send_create_inode_if_needed()
2766 int ret; in orphanize_inode() local
2773 ret = gen_unique_name(sctx, ino, gen, orphan); in orphanize_inode()
2774 if (ret < 0) in orphanize_inode()
2777 ret = send_rename(sctx, path, orphan); in orphanize_inode()
2781 return ret; in orphanize_inode()
2857 int ret = 0; in can_rmdir() local
2878 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in can_rmdir()
2879 if (ret < 0) in can_rmdir()
2886 ret = btrfs_next_leaf(root, path); in can_rmdir()
2887 if (ret < 0) in can_rmdir()
2889 else if (ret > 0) in can_rmdir()
2909 ret = PTR_ERR(odi); in can_rmdir()
2914 ret = 0; in can_rmdir()
2919 ret = 0; in can_rmdir()
2926 ret = 1; in can_rmdir()
2930 return ret; in can_rmdir()
3010 int ret; in add_pending_dir_move() local
3037 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3038 if (ret < 0) in add_pending_dir_move()
3042 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3043 if (ret < 0) in add_pending_dir_move()
3047 ret = add_waiting_dir_move(sctx, pm->ino); in add_pending_dir_move()
3048 if (ret) in add_pending_dir_move()
3057 ret = 0; in add_pending_dir_move()
3059 if (ret) { in add_pending_dir_move()
3063 return ret; in add_pending_dir_move()
3094 int ret; in apply_dir_move() local
3099 ret = -ENOMEM; in apply_dir_move()
3109 ret = gen_unique_name(sctx, pm->ino, in apply_dir_move()
3112 ret = get_first_ref(sctx->parent_root, pm->ino, in apply_dir_move()
3114 if (ret < 0) in apply_dir_move()
3116 ret = get_cur_path(sctx, parent_ino, parent_gen, in apply_dir_move()
3118 if (ret < 0) in apply_dir_move()
3120 ret = fs_path_add_path(from_path, name); in apply_dir_move()
3122 if (ret < 0) in apply_dir_move()
3129 ret = get_cur_path(sctx, pm->ino, pm->gen, to_path); in apply_dir_move()
3130 if (ret < 0) in apply_dir_move()
3133 ret = send_rename(sctx, from_path, to_path); in apply_dir_move()
3134 if (ret < 0) in apply_dir_move()
3145 ret = can_rmdir(sctx, rmdir_ino, odi->gen, sctx->cur_ino + 1); in apply_dir_move()
3146 if (ret < 0) in apply_dir_move()
3148 if (!ret) in apply_dir_move()
3153 ret = -ENOMEM; in apply_dir_move()
3156 ret = get_cur_path(sctx, rmdir_ino, odi->gen, name); in apply_dir_move()
3157 if (ret < 0) in apply_dir_move()
3159 ret = send_rmdir(sctx, name); in apply_dir_move()
3160 if (ret < 0) in apply_dir_move()
3166 ret = send_utimes(sctx, pm->ino, pm->gen); in apply_dir_move()
3167 if (ret < 0) in apply_dir_move()
3177 ret = send_utimes(sctx, cur->dir, cur->dir_gen); in apply_dir_move()
3178 if (ret < 0) in apply_dir_move()
3188 return ret; in apply_dir_move()
3219 int ret = 0; in apply_children_dir_moves() local
3231 ret = apply_dir_move(sctx, pm); in apply_children_dir_moves()
3233 if (ret) in apply_children_dir_moves()
3246 return ret; in apply_children_dir_moves()
3295 int ret = 0; in wait_for_dest_dir_move() local
3308 ret = btrfs_search_slot(NULL, sctx->parent_root, &key, path, 0, 0); in wait_for_dest_dir_move()
3309 if (ret < 0) { in wait_for_dest_dir_move()
3311 } else if (ret > 0) { in wait_for_dest_dir_move()
3312 ret = 0; in wait_for_dest_dir_move()
3319 ret = 0; in wait_for_dest_dir_move()
3332 ret = 0; in wait_for_dest_dir_move()
3336 ret = get_inode_info(sctx->parent_root, di_key.objectid, NULL, in wait_for_dest_dir_move()
3338 if (ret < 0) in wait_for_dest_dir_move()
3340 ret = get_inode_info(sctx->send_root, di_key.objectid, NULL, in wait_for_dest_dir_move()
3342 if (ret < 0) { in wait_for_dest_dir_move()
3343 if (ret == -ENOENT) in wait_for_dest_dir_move()
3344 ret = 0; in wait_for_dest_dir_move()
3350 ret = 0; in wait_for_dest_dir_move()
3355 ret = add_pending_dir_move(sctx, in wait_for_dest_dir_move()
3362 if (!ret) in wait_for_dest_dir_move()
3363 ret = 1; in wait_for_dest_dir_move()
3367 return ret; in wait_for_dest_dir_move()
3373 int ret = 0; in wait_for_parent_move() local
3383 ret = -ENOMEM; in wait_for_parent_move()
3395 ret = 1; in wait_for_parent_move()
3402 ret = get_first_ref(sctx->send_root, ino, &parent_ino_after, in wait_for_parent_move()
3404 if (ret < 0) in wait_for_parent_move()
3406 ret = get_first_ref(sctx->parent_root, ino, &parent_ino_before, in wait_for_parent_move()
3408 if (ret < 0 && ret != -ENOENT) { in wait_for_parent_move()
3410 } else if (ret == -ENOENT) { in wait_for_parent_move()
3411 ret = 0; in wait_for_parent_move()
3420 ret = 1; in wait_for_parent_move()
3430 if (ret == 1) { in wait_for_parent_move()
3431 ret = add_pending_dir_move(sctx, in wait_for_parent_move()
3438 if (!ret) in wait_for_parent_move()
3439 ret = 1; in wait_for_parent_move()
3442 return ret; in wait_for_parent_move()
3450 int ret = 0; in process_recorded_refs() local
3473 ret = -ENOMEM; in process_recorded_refs()
3489 ret = did_overwrite_first_ref(sctx, sctx->cur_ino, in process_recorded_refs()
3491 if (ret < 0) in process_recorded_refs()
3493 if (ret) in process_recorded_refs()
3497 ret = gen_unique_name(sctx, sctx->cur_ino, in process_recorded_refs()
3499 if (ret < 0) in process_recorded_refs()
3503 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, in process_recorded_refs()
3505 if (ret < 0) in process_recorded_refs()
3517 ret = get_cur_inode_state(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3518 if (ret < 0) in process_recorded_refs()
3520 if (ret == inode_state_will_create) { in process_recorded_refs()
3521 ret = 0; in process_recorded_refs()
3530 ret = 1; in process_recorded_refs()
3539 if (!ret) in process_recorded_refs()
3540 ret = did_create_dir(sctx, cur->dir); in process_recorded_refs()
3541 if (ret < 0) in process_recorded_refs()
3543 if (!ret) { in process_recorded_refs()
3544 ret = send_create_inode(sctx, cur->dir); in process_recorded_refs()
3545 if (ret < 0) in process_recorded_refs()
3556 ret = will_overwrite_ref(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3559 if (ret < 0) in process_recorded_refs()
3561 if (ret) { in process_recorded_refs()
3562 ret = is_first_ref(sctx->parent_root, in process_recorded_refs()
3565 if (ret < 0) in process_recorded_refs()
3567 if (ret) { in process_recorded_refs()
3570 ret = orphanize_inode(sctx, ow_inode, ow_gen, in process_recorded_refs()
3572 if (ret < 0) in process_recorded_refs()
3590 ret = send_unlink(sctx, cur->full_path); in process_recorded_refs()
3591 if (ret < 0) in process_recorded_refs()
3597 ret = wait_for_dest_dir_move(sctx, cur, is_orphan); in process_recorded_refs()
3598 if (ret < 0) in process_recorded_refs()
3600 if (ret == 1) { in process_recorded_refs()
3612 ret = send_rename(sctx, valid_path, cur->full_path); in process_recorded_refs()
3613 if (ret < 0) in process_recorded_refs()
3616 ret = fs_path_copy(valid_path, cur->full_path); in process_recorded_refs()
3617 if (ret < 0) in process_recorded_refs()
3626 ret = wait_for_parent_move(sctx, cur); in process_recorded_refs()
3627 if (ret < 0) in process_recorded_refs()
3629 if (ret) { in process_recorded_refs()
3632 ret = send_rename(sctx, valid_path, in process_recorded_refs()
3634 if (!ret) in process_recorded_refs()
3635 ret = fs_path_copy(valid_path, in process_recorded_refs()
3638 if (ret < 0) in process_recorded_refs()
3641 ret = send_link(sctx, cur->full_path, in process_recorded_refs()
3643 if (ret < 0) in process_recorded_refs()
3647 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3648 if (ret < 0) in process_recorded_refs()
3659 ret = can_rmdir(sctx, sctx->cur_ino, sctx->cur_inode_gen, in process_recorded_refs()
3661 if (ret < 0) in process_recorded_refs()
3663 if (ret) { in process_recorded_refs()
3664 ret = send_rmdir(sctx, valid_path); in process_recorded_refs()
3665 if (ret < 0) in process_recorded_refs()
3668 ret = orphanize_inode(sctx, sctx->cur_ino, in process_recorded_refs()
3670 if (ret < 0) in process_recorded_refs()
3676 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3677 if (ret < 0) in process_recorded_refs()
3687 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3688 if (ret < 0) in process_recorded_refs()
3697 ret = did_overwrite_ref(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3700 if (ret < 0) in process_recorded_refs()
3702 if (!ret) { in process_recorded_refs()
3703 ret = send_unlink(sctx, cur->full_path); in process_recorded_refs()
3704 if (ret < 0) in process_recorded_refs()
3707 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3708 if (ret < 0) in process_recorded_refs()
3720 ret = send_unlink(sctx, valid_path); in process_recorded_refs()
3721 if (ret < 0) in process_recorded_refs()
3741 ret = get_cur_inode_state(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3742 if (ret < 0) in process_recorded_refs()
3745 if (ret == inode_state_did_create || in process_recorded_refs()
3746 ret == inode_state_no_change) { in process_recorded_refs()
3748 ret = send_utimes(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3749 if (ret < 0) in process_recorded_refs()
3751 } else if (ret == inode_state_did_delete && in process_recorded_refs()
3753 ret = can_rmdir(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3755 if (ret < 0) in process_recorded_refs()
3757 if (ret) { in process_recorded_refs()
3758 ret = get_cur_path(sctx, cur->dir, in process_recorded_refs()
3760 if (ret < 0) in process_recorded_refs()
3762 ret = send_rmdir(sctx, valid_path); in process_recorded_refs()
3763 if (ret < 0) in process_recorded_refs()
3770 ret = 0; in process_recorded_refs()
3776 return ret; in process_recorded_refs()
3782 int ret = 0; in record_ref() local
3791 ret = get_inode_info(root, dir, NULL, &gen, NULL, NULL, in record_ref()
3793 if (ret < 0) in record_ref()
3796 ret = get_cur_path(sctx, dir, gen, p); in record_ref()
3797 if (ret < 0) in record_ref()
3799 ret = fs_path_add_path(p, name); in record_ref()
3800 if (ret < 0) in record_ref()
3803 ret = __record_ref(refs, dir, gen, p); in record_ref()
3806 if (ret) in record_ref()
3808 return ret; in record_ref()
3832 int ret; in record_new_ref() local
3834 ret = iterate_inode_ref(sctx->send_root, sctx->left_path, in record_new_ref()
3836 if (ret < 0) in record_new_ref()
3838 ret = 0; in record_new_ref()
3841 return ret; in record_new_ref()
3846 int ret; in record_deleted_ref() local
3848 ret = iterate_inode_ref(sctx->parent_root, sctx->right_path, in record_deleted_ref()
3850 if (ret < 0) in record_deleted_ref()
3852 ret = 0; in record_deleted_ref()
3855 return ret; in record_deleted_ref()
3872 int ret; in __find_iref() local
3880 ret = get_inode_info(ctx->root, dir, NULL, &dir_gen, NULL, in __find_iref()
3882 if (ret) in __find_iref()
3883 return ret; in __find_iref()
3897 int ret; in find_iref() local
3906 ret = iterate_inode_ref(root, path, key, 0, __find_iref, &ctx); in find_iref()
3907 if (ret < 0) in find_iref()
3908 return ret; in find_iref()
3921 int ret; in __record_changed_new_ref() local
3924 ret = get_inode_info(sctx->send_root, dir, NULL, &dir_gen, NULL, in __record_changed_new_ref()
3926 if (ret) in __record_changed_new_ref()
3927 return ret; in __record_changed_new_ref()
3929 ret = find_iref(sctx->parent_root, sctx->right_path, in __record_changed_new_ref()
3931 if (ret == -ENOENT) in __record_changed_new_ref()
3932 ret = __record_new_ref(num, dir, index, name, sctx); in __record_changed_new_ref()
3933 else if (ret > 0) in __record_changed_new_ref()
3934 ret = 0; in __record_changed_new_ref()
3936 return ret; in __record_changed_new_ref()
3944 int ret; in __record_changed_deleted_ref() local
3947 ret = get_inode_info(sctx->parent_root, dir, NULL, &dir_gen, NULL, in __record_changed_deleted_ref()
3949 if (ret) in __record_changed_deleted_ref()
3950 return ret; in __record_changed_deleted_ref()
3952 ret = find_iref(sctx->send_root, sctx->left_path, sctx->cmp_key, in __record_changed_deleted_ref()
3954 if (ret == -ENOENT) in __record_changed_deleted_ref()
3955 ret = __record_deleted_ref(num, dir, index, name, sctx); in __record_changed_deleted_ref()
3956 else if (ret > 0) in __record_changed_deleted_ref()
3957 ret = 0; in __record_changed_deleted_ref()
3959 return ret; in __record_changed_deleted_ref()
3964 int ret = 0; in record_changed_ref() local
3966 ret = iterate_inode_ref(sctx->send_root, sctx->left_path, in record_changed_ref()
3968 if (ret < 0) in record_changed_ref()
3970 ret = iterate_inode_ref(sctx->parent_root, sctx->right_path, in record_changed_ref()
3972 if (ret < 0) in record_changed_ref()
3974 ret = 0; in record_changed_ref()
3977 return ret; in record_changed_ref()
3987 int ret; in process_all_refs() local
4010 ret = -EINVAL; in process_all_refs()
4017 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_refs()
4018 if (ret < 0) in process_all_refs()
4025 ret = btrfs_next_leaf(root, path); in process_all_refs()
4026 if (ret < 0) in process_all_refs()
4028 else if (ret > 0) in process_all_refs()
4040 ret = iterate_inode_ref(root, path, &found_key, 0, cb, sctx); in process_all_refs()
4041 if (ret < 0) in process_all_refs()
4048 ret = process_recorded_refs(sctx, &pending_move); in process_all_refs()
4054 return ret; in process_all_refs()
4062 int ret = 0; in send_set_xattr() local
4064 ret = begin_cmd(sctx, BTRFS_SEND_C_SET_XATTR); in send_set_xattr()
4065 if (ret < 0) in send_set_xattr()
4072 ret = send_cmd(sctx); in send_set_xattr()
4076 return ret; in send_set_xattr()
4083 int ret = 0; in send_remove_xattr() local
4085 ret = begin_cmd(sctx, BTRFS_SEND_C_REMOVE_XATTR); in send_remove_xattr()
4086 if (ret < 0) in send_remove_xattr()
4092 ret = send_cmd(sctx); in send_remove_xattr()
4096 return ret; in send_remove_xattr()
4104 int ret; in __process_new_xattr() local
4129 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in __process_new_xattr()
4130 if (ret < 0) in __process_new_xattr()
4133 ret = send_set_xattr(sctx, p, name, name_len, data, data_len); in __process_new_xattr()
4137 return ret; in __process_new_xattr()
4145 int ret; in __process_deleted_xattr() local
4153 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in __process_deleted_xattr()
4154 if (ret < 0) in __process_deleted_xattr()
4157 ret = send_remove_xattr(sctx, p, name, name_len); in __process_deleted_xattr()
4161 return ret; in __process_deleted_xattr()
4166 int ret = 0; in process_new_xattr() local
4168 ret = iterate_dir_item(sctx->send_root, sctx->left_path, in process_new_xattr()
4171 return ret; in process_new_xattr()
4176 int ret; in process_deleted_xattr() local
4178 ret = iterate_dir_item(sctx->parent_root, sctx->right_path, in process_deleted_xattr()
4181 return ret; in process_deleted_xattr()
4217 int ret; in find_xattr() local
4226 ret = iterate_dir_item(root, path, key, __find_xattr, &ctx); in find_xattr()
4227 if (ret < 0) in find_xattr()
4228 return ret; in find_xattr()
4247 int ret; in __process_changed_new_xattr() local
4252 ret = find_xattr(sctx->parent_root, sctx->right_path, in __process_changed_new_xattr()
4255 if (ret == -ENOENT) { in __process_changed_new_xattr()
4256 ret = __process_new_xattr(num, di_key, name, name_len, data, in __process_changed_new_xattr()
4258 } else if (ret >= 0) { in __process_changed_new_xattr()
4261 ret = __process_new_xattr(num, di_key, name, name_len, in __process_changed_new_xattr()
4264 ret = 0; in __process_changed_new_xattr()
4269 return ret; in __process_changed_new_xattr()
4277 int ret; in __process_changed_deleted_xattr() local
4280 ret = find_xattr(sctx->send_root, sctx->left_path, sctx->cmp_key, in __process_changed_deleted_xattr()
4282 if (ret == -ENOENT) in __process_changed_deleted_xattr()
4283 ret = __process_deleted_xattr(num, di_key, name, name_len, data, in __process_changed_deleted_xattr()
4285 else if (ret >= 0) in __process_changed_deleted_xattr()
4286 ret = 0; in __process_changed_deleted_xattr()
4288 return ret; in __process_changed_deleted_xattr()
4293 int ret = 0; in process_changed_xattr() local
4295 ret = iterate_dir_item(sctx->send_root, sctx->left_path, in process_changed_xattr()
4297 if (ret < 0) in process_changed_xattr()
4299 ret = iterate_dir_item(sctx->parent_root, sctx->right_path, in process_changed_xattr()
4303 return ret; in process_changed_xattr()
4308 int ret; in process_all_new_xattrs() local
4325 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_new_xattrs()
4326 if (ret < 0) in process_all_new_xattrs()
4333 ret = btrfs_next_leaf(root, path); in process_all_new_xattrs()
4334 if (ret < 0) { in process_all_new_xattrs()
4336 } else if (ret > 0) { in process_all_new_xattrs()
4337 ret = 0; in process_all_new_xattrs()
4346 ret = 0; in process_all_new_xattrs()
4350 ret = iterate_dir_item(root, path, &found_key, in process_all_new_xattrs()
4352 if (ret < 0) in process_all_new_xattrs()
4360 return ret; in process_all_new_xattrs()
4374 ssize_t ret = 0; in fill_read_buf() local
4406 ret = -ENOMEM; in fill_read_buf()
4416 ret = -EIO; in fill_read_buf()
4422 memcpy(sctx->read_buf + ret, addr + pg_offset, cur_len); in fill_read_buf()
4429 ret += cur_len; in fill_read_buf()
4433 return ret; in fill_read_buf()
4442 int ret = 0; in send_write() local
4455 ret = num_read; in send_write()
4459 ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE); in send_write()
4460 if (ret < 0) in send_write()
4463 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_write()
4464 if (ret < 0) in send_write()
4471 ret = send_cmd(sctx); in send_write()
4476 if (ret < 0) in send_write()
4477 return ret; in send_write()
4488 int ret = 0; in send_clone() local
4501 ret = begin_cmd(sctx, BTRFS_SEND_C_CLONE); in send_clone()
4502 if (ret < 0) in send_clone()
4505 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_clone()
4506 if (ret < 0) in send_clone()
4514 ret = get_inode_info(sctx->send_root, clone_root->ino, NULL, in send_clone()
4516 if (ret < 0) in send_clone()
4518 ret = get_cur_path(sctx, clone_root->ino, gen, p); in send_clone()
4520 ret = get_inode_path(clone_root->root, clone_root->ino, p); in send_clone()
4522 if (ret < 0) in send_clone()
4533 ret = send_cmd(sctx); in send_clone()
4538 return ret; in send_clone()
4547 int ret = 0; in send_update_extent() local
4554 ret = begin_cmd(sctx, BTRFS_SEND_C_UPDATE_EXTENT); in send_update_extent()
4555 if (ret < 0) in send_update_extent()
4558 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_update_extent()
4559 if (ret < 0) in send_update_extent()
4566 ret = send_cmd(sctx); in send_update_extent()
4571 return ret; in send_update_extent()
4579 int ret = 0; in send_hole() local
4584 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_hole()
4585 if (ret < 0) in send_hole()
4591 ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE); in send_hole()
4592 if (ret < 0) in send_hole()
4597 ret = send_cmd(sctx); in send_hole()
4598 if (ret < 0) in send_hole()
4604 return ret; in send_hole()
4612 int ret = 0; in send_write_or_clone() local
4640 ret = 0; in send_write_or_clone()
4645 ret = send_clone(sctx, offset, len, clone_root); in send_write_or_clone()
4647 ret = send_update_extent(sctx, offset, len); in send_write_or_clone()
4653 ret = send_write(sctx, pos + offset, l); in send_write_or_clone()
4654 if (ret < 0) in send_write_or_clone()
4656 if (!ret) in send_write_or_clone()
4658 pos += ret; in send_write_or_clone()
4660 ret = 0; in send_write_or_clone()
4663 return ret; in send_write_or_clone()
4670 int ret = 0; in is_extent_unchanged() local
4699 ret = 0; in is_extent_unchanged()
4731 ret = btrfs_search_slot_for_read(sctx->parent_root, &key, path, 0, 0); in is_extent_unchanged()
4732 if (ret < 0) in is_extent_unchanged()
4734 if (ret) { in is_extent_unchanged()
4735 ret = 0; in is_extent_unchanged()
4748 ret = (left_disknr) ? 0 : 1; in is_extent_unchanged()
4760 ret = 0; in is_extent_unchanged()
4775 ret = (left_disknr) ? 0 : 1; in is_extent_unchanged()
4794 ret = 0; in is_extent_unchanged()
4801 ret = btrfs_next_item(sctx->parent_root, path); in is_extent_unchanged()
4802 if (ret < 0) in is_extent_unchanged()
4804 if (!ret) { in is_extent_unchanged()
4809 if (ret || found_key.objectid != key.objectid || in is_extent_unchanged()
4815 ret = 0; in is_extent_unchanged()
4826 ret = 1; in is_extent_unchanged()
4828 ret = 0; in is_extent_unchanged()
4833 return ret; in is_extent_unchanged()
4844 int ret; in get_last_extent() local
4855 ret = btrfs_search_slot_for_read(root, &key, path, 0, 1); in get_last_extent()
4856 if (ret < 0) in get_last_extent()
4858 ret = 0; in get_last_extent()
4878 return ret; in get_last_extent()
4887 int ret = 0; in maybe_send_hole() local
4893 ret = get_last_extent(sctx, key->offset - 1); in maybe_send_hole()
4894 if (ret) in maybe_send_hole()
4895 return ret; in maybe_send_hole()
4920 ret = get_last_extent(sctx, key->offset - 1); in maybe_send_hole()
4921 if (ret) in maybe_send_hole()
4922 return ret; in maybe_send_hole()
4926 ret = send_hole(sctx, key->offset); in maybe_send_hole()
4928 return ret; in maybe_send_hole()
4936 int ret = 0; in process_extent() local
4942 ret = is_extent_unchanged(sctx, path, key); in process_extent()
4943 if (ret < 0) in process_extent()
4945 if (ret) { in process_extent()
4946 ret = 0; in process_extent()
4965 ret = 0; in process_extent()
4971 ret = 0; in process_extent()
4977 ret = find_extent_clone(sctx, path, key->objectid, key->offset, in process_extent()
4979 if (ret != -ENOENT && ret < 0) in process_extent()
4982 ret = send_write_or_clone(sctx, path, key, found_clone); in process_extent()
4983 if (ret) in process_extent()
4986 ret = maybe_send_hole(sctx, path, key); in process_extent()
4988 return ret; in process_extent()
4993 int ret; in process_all_extents() local
5009 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_extents()
5010 if (ret < 0) in process_all_extents()
5018 ret = btrfs_next_leaf(root, path); in process_all_extents()
5019 if (ret < 0) { in process_all_extents()
5021 } else if (ret > 0) { in process_all_extents()
5022 ret = 0; in process_all_extents()
5032 ret = 0; in process_all_extents()
5036 ret = process_extent(sctx, path, &found_key); in process_all_extents()
5037 if (ret < 0) in process_all_extents()
5045 return ret; in process_all_extents()
5052 int ret = 0; in process_recorded_refs_if_needed() local
5062 ret = process_recorded_refs(sctx, pending_move); in process_recorded_refs_if_needed()
5063 if (ret < 0) in process_recorded_refs_if_needed()
5068 return ret; in process_recorded_refs_if_needed()
5073 int ret = 0; in finish_inode_if_needed() local
5085 ret = process_recorded_refs_if_needed(sctx, at_end, &pending_move, in finish_inode_if_needed()
5087 if (ret < 0) in finish_inode_if_needed()
5110 ret = get_inode_info(sctx->send_root, sctx->cur_ino, NULL, NULL, in finish_inode_if_needed()
5112 if (ret < 0) in finish_inode_if_needed()
5120 ret = get_inode_info(sctx->parent_root, sctx->cur_ino, in finish_inode_if_needed()
5123 if (ret < 0) in finish_inode_if_needed()
5137 ret = get_last_extent(sctx, (u64)-1); in finish_inode_if_needed()
5138 if (ret) in finish_inode_if_needed()
5143 ret = send_hole(sctx, sctx->cur_inode_size); in finish_inode_if_needed()
5144 if (ret) in finish_inode_if_needed()
5148 ret = send_truncate(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5150 if (ret < 0) in finish_inode_if_needed()
5155 ret = send_chown(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5157 if (ret < 0) in finish_inode_if_needed()
5161 ret = send_chmod(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5163 if (ret < 0) in finish_inode_if_needed()
5172 ret = apply_children_dir_moves(sctx); in finish_inode_if_needed()
5173 if (ret) in finish_inode_if_needed()
5183 ret = send_utimes(sctx, sctx->cur_ino, sctx->cur_inode_gen); in finish_inode_if_needed()
5184 if (ret < 0) in finish_inode_if_needed()
5189 return ret; in finish_inode_if_needed()
5195 int ret = 0; in changed_inode() local
5256 ret = send_create_inode_if_needed(sctx); in changed_inode()
5284 ret = process_all_refs(sctx, in changed_inode()
5286 if (ret < 0) in changed_inode()
5301 ret = send_create_inode_if_needed(sctx); in changed_inode()
5302 if (ret < 0) in changed_inode()
5305 ret = process_all_refs(sctx, BTRFS_COMPARE_TREE_NEW); in changed_inode()
5306 if (ret < 0) in changed_inode()
5318 ret = process_all_extents(sctx); in changed_inode()
5319 if (ret < 0) in changed_inode()
5321 ret = process_all_new_xattrs(sctx); in changed_inode()
5322 if (ret < 0) in changed_inode()
5337 return ret; in changed_inode()
5353 int ret = 0; in changed_ref() local
5360 ret = record_new_ref(sctx); in changed_ref()
5362 ret = record_deleted_ref(sctx); in changed_ref()
5364 ret = record_changed_ref(sctx); in changed_ref()
5367 return ret; in changed_ref()
5378 int ret = 0; in changed_xattr() local
5384 ret = process_new_xattr(sctx); in changed_xattr()
5386 ret = process_deleted_xattr(sctx); in changed_xattr()
5388 ret = process_changed_xattr(sctx); in changed_xattr()
5391 return ret; in changed_xattr()
5402 int ret = 0; in changed_extent() local
5408 ret = process_extent(sctx, sctx->left_path, in changed_extent()
5412 return ret; in changed_extent()
5418 int ret; in dir_changed() local
5420 ret = get_inode_info(sctx->send_root, dir, NULL, &new_gen, NULL, NULL, in dir_changed()
5422 if (ret) in dir_changed()
5423 return ret; in dir_changed()
5425 ret = get_inode_info(sctx->parent_root, dir, NULL, &orig_gen, NULL, in dir_changed()
5427 if (ret) in dir_changed()
5428 return ret; in dir_changed()
5443 int ret = 0; in compare_refs() local
5449 ret = dir_changed(sctx, dirid); in compare_refs()
5464 ret = dir_changed(sctx, dirid); in compare_refs()
5465 if (ret) in compare_refs()
5470 return ret; in compare_refs()
5485 int ret = 0; in changed_cb() local
5491 ret = compare_refs(sctx, left_path, key); in changed_cb()
5492 if (!ret) in changed_cb()
5494 if (ret < 0) in changed_cb()
5495 return ret; in changed_cb()
5502 ret = 0; in changed_cb()
5509 ret = finish_inode_if_needed(sctx, 0); in changed_cb()
5510 if (ret < 0) in changed_cb()
5519 ret = changed_inode(sctx, result); in changed_cb()
5522 ret = changed_ref(sctx, result); in changed_cb()
5524 ret = changed_xattr(sctx, result); in changed_cb()
5526 ret = changed_extent(sctx, result); in changed_cb()
5529 return ret; in changed_cb()
5534 int ret; in full_send_tree() local
5550 ret = btrfs_search_slot_for_read(send_root, &key, path, 1, 0); in full_send_tree()
5551 if (ret < 0) in full_send_tree()
5553 if (ret) in full_send_tree()
5561 ret = changed_cb(send_root, NULL, path, NULL, in full_send_tree()
5563 if (ret < 0) in full_send_tree()
5570 ret = btrfs_next_item(send_root, path); in full_send_tree()
5571 if (ret < 0) in full_send_tree()
5573 if (ret) { in full_send_tree()
5574 ret = 0; in full_send_tree()
5580 ret = finish_inode_if_needed(sctx, 1); in full_send_tree()
5584 return ret; in full_send_tree()
5589 int ret; in send_subvol() local
5592 ret = send_header(sctx); in send_subvol()
5593 if (ret < 0) in send_subvol()
5597 ret = send_subvol_begin(sctx); in send_subvol()
5598 if (ret < 0) in send_subvol()
5602 ret = btrfs_compare_trees(sctx->send_root, sctx->parent_root, in send_subvol()
5604 if (ret < 0) in send_subvol()
5606 ret = finish_inode_if_needed(sctx, 1); in send_subvol()
5607 if (ret < 0) in send_subvol()
5610 ret = full_send_tree(sctx); in send_subvol()
5611 if (ret < 0) in send_subvol()
5617 return ret; in send_subvol()
5682 int ret = 0; in btrfs_ioctl_send() local
5720 ret = -EPERM; in btrfs_ioctl_send()
5726 ret = PTR_ERR(arg); in btrfs_ioctl_send()
5734 ret = -EFAULT; in btrfs_ioctl_send()
5739 ret = -EINVAL; in btrfs_ioctl_send()
5745 ret = -ENOMEM; in btrfs_ioctl_send()
5758 ret = -EBADF; in btrfs_ioctl_send()
5768 ret = -EPERM; in btrfs_ioctl_send()
5777 ret = -ENOMEM; in btrfs_ioctl_send()
5783 ret = -ENOMEM; in btrfs_ioctl_send()
5794 ret = -ENOMEM; in btrfs_ioctl_send()
5802 ret = -ENOMEM; in btrfs_ioctl_send()
5806 ret = copy_from_user(clone_sources_tmp, arg->clone_sources, in btrfs_ioctl_send()
5809 if (ret) { in btrfs_ioctl_send()
5810 ret = -EFAULT; in btrfs_ioctl_send()
5824 ret = PTR_ERR(clone_root); in btrfs_ioctl_send()
5832 ret = -EPERM; in btrfs_ioctl_send()
5856 ret = PTR_ERR(sctx->parent_root); in btrfs_ioctl_send()
5866 ret = -EPERM; in btrfs_ioctl_send()
5887 ret = ensure_commit_roots_uptodate(sctx); in btrfs_ioctl_send()
5888 if (ret) in btrfs_ioctl_send()
5892 ret = send_subvol(sctx); in btrfs_ioctl_send()
5894 if (ret < 0) in btrfs_ioctl_send()
5898 ret = begin_cmd(sctx, BTRFS_SEND_C_END); in btrfs_ioctl_send()
5899 if (ret < 0) in btrfs_ioctl_send()
5901 ret = send_cmd(sctx); in btrfs_ioctl_send()
5902 if (ret < 0) in btrfs_ioctl_send()
5907 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->pending_dir_moves)); in btrfs_ioctl_send()
5924 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->waiting_dir_moves)); in btrfs_ioctl_send()
5935 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->orphan_dirs)); in btrfs_ioctl_send()
5975 return ret; in btrfs_ioctl_send()