Lines Matching refs:ret
270 int ret; member
396 int ret; in fs_path_prepare_for_add() local
402 ret = fs_path_ensure_buf(p, new_len); in fs_path_prepare_for_add()
403 if (ret < 0) in fs_path_prepare_for_add()
420 return ret; in fs_path_prepare_for_add()
425 int ret; in fs_path_add() local
428 ret = fs_path_prepare_for_add(p, name_len, &prepared); in fs_path_add()
429 if (ret < 0) in fs_path_add()
434 return ret; in fs_path_add()
439 int ret; in fs_path_add_path() local
442 ret = fs_path_prepare_for_add(p, p2->end - p2->start, &prepared); in fs_path_add_path()
443 if (ret < 0) in fs_path_add_path()
448 return ret; in fs_path_add_path()
455 int ret; in fs_path_add_from_extent_buffer() local
458 ret = fs_path_prepare_for_add(p, len, &prepared); in fs_path_add_from_extent_buffer()
459 if (ret < 0) in fs_path_add_from_extent_buffer()
465 return ret; in fs_path_add_from_extent_buffer()
470 int ret; in fs_path_copy() local
475 ret = fs_path_add_path(p, from); in fs_path_copy()
477 return ret; in fs_path_copy()
512 int ret; in write_buf() local
520 ret = vfs_write(filp, (__force const char __user *)buf + pos, in write_buf()
526 if (ret < 0) in write_buf()
528 if (ret == 0) { in write_buf()
529 ret = -EIO; in write_buf()
532 pos += ret; in write_buf()
535 ret = 0; in write_buf()
539 return ret; in write_buf()
596 ret = tlv_put(sctx, attrtype, attrlen, data); \
597 if (ret < 0) \
603 ret = tlv_put_u##bits(sctx, attrtype, value); \
604 if (ret < 0) \
614 ret = tlv_put_string(sctx, attrtype, str, len); \
615 if (ret < 0) \
620 ret = tlv_put_string(sctx, attrtype, p->start, \
622 if (ret < 0) \
627 ret = tlv_put_uuid(sctx, attrtype, uuid); \
628 if (ret < 0) \
633 ret = tlv_put_btrfs_timespec(sctx, attrtype, eb, ts); \
634 if (ret < 0) \
670 int ret; in send_cmd() local
681 ret = write_buf(sctx->send_filp, sctx->send_buf, sctx->send_size, in send_cmd()
688 return ret; in send_cmd()
697 int ret; in send_rename() local
701 ret = begin_cmd(sctx, BTRFS_SEND_C_RENAME); in send_rename()
702 if (ret < 0) in send_rename()
708 ret = send_cmd(sctx); in send_rename()
712 return ret; in send_rename()
721 int ret; in send_link() local
725 ret = begin_cmd(sctx, BTRFS_SEND_C_LINK); in send_link()
726 if (ret < 0) in send_link()
732 ret = send_cmd(sctx); in send_link()
736 return ret; in send_link()
744 int ret; in send_unlink() local
748 ret = begin_cmd(sctx, BTRFS_SEND_C_UNLINK); in send_unlink()
749 if (ret < 0) in send_unlink()
754 ret = send_cmd(sctx); in send_unlink()
758 return ret; in send_unlink()
766 int ret; in send_rmdir() local
770 ret = begin_cmd(sctx, BTRFS_SEND_C_RMDIR); in send_rmdir()
771 if (ret < 0) in send_rmdir()
776 ret = send_cmd(sctx); in send_rmdir()
780 return ret; in send_rmdir()
790 int ret; in __get_inode_info() local
797 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in __get_inode_info()
798 if (ret) { in __get_inode_info()
799 if (ret > 0) in __get_inode_info()
800 ret = -ENOENT; in __get_inode_info()
801 return ret; in __get_inode_info()
819 return ret; in __get_inode_info()
828 int ret; in get_inode_info() local
833 ret = __get_inode_info(root, path, ino, size, gen, mode, uid, gid, in get_inode_info()
836 return ret; in get_inode_info()
866 int ret = 0; in iterate_inode_ref() local
919 ret = PTR_ERR(start); in iterate_inode_ref()
924 ret = fs_path_ensure_buf(p, in iterate_inode_ref()
926 if (ret < 0) in iterate_inode_ref()
933 ret = PTR_ERR(start); in iterate_inode_ref()
940 ret = fs_path_add_from_extent_buffer(p, eb, name_off, in iterate_inode_ref()
942 if (ret < 0) in iterate_inode_ref()
947 ret = iterate(num, dir, index, p, ctx); in iterate_inode_ref()
948 if (ret) in iterate_inode_ref()
956 return ret; in iterate_inode_ref()
975 int ret = 0; in iterate_dir_item() local
1000 ret = -ENOMEM; in iterate_dir_item()
1021 ret = -ENAMETOOLONG; in iterate_dir_item()
1025 ret = -E2BIG; in iterate_dir_item()
1033 ret = -ENAMETOOLONG; in iterate_dir_item()
1054 ret = -ENOMEM; in iterate_dir_item()
1067 ret = iterate(num, &di_key, buf, name_len, buf + name_len, in iterate_dir_item()
1069 if (ret < 0) in iterate_dir_item()
1071 if (ret) { in iterate_dir_item()
1072 ret = 0; in iterate_dir_item()
1081 return ret; in iterate_dir_item()
1087 int ret; in __copy_first_ref() local
1090 ret = fs_path_copy(pt, p); in __copy_first_ref()
1091 if (ret < 0) in __copy_first_ref()
1092 return ret; in __copy_first_ref()
1105 int ret; in get_inode_path() local
1119 ret = btrfs_search_slot_for_read(root, &key, p, 1, 0); in get_inode_path()
1120 if (ret < 0) in get_inode_path()
1122 if (ret) { in get_inode_path()
1123 ret = 1; in get_inode_path()
1130 ret = -ENOENT; in get_inode_path()
1134 ret = iterate_inode_ref(root, p, &found_key, 1, in get_inode_path()
1136 if (ret < 0) in get_inode_path()
1138 ret = 0; in get_inode_path()
1142 return ret; in get_inode_path()
1201 int ret; in __iterate_backrefs() local
1222 ret = __get_inode_info(found->root, bctx->path, ino, &i_size, NULL, NULL, in __iterate_backrefs()
1225 if (ret < 0) in __iterate_backrefs()
1226 return ret; in __iterate_backrefs()
1283 int ret; in find_extent_clone() local
1308 ret = -ENOMEM; in find_extent_clone()
1320 ret = 0; in find_extent_clone()
1328 ret = -ENOENT; in find_extent_clone()
1336 ret = -ENOENT; in find_extent_clone()
1342 ret = extent_from_logical(sctx->send_root->fs_info, disk_byte, tmp_path, in find_extent_clone()
1347 if (ret < 0) in find_extent_clone()
1350 ret = -EIO; in find_extent_clone()
1399 ret = iterate_extent_inodes(sctx->send_root->fs_info, in find_extent_clone()
1403 if (ret < 0) in find_extent_clone()
1408 ret = -EIO; in find_extent_clone()
1438 ret = 0; in find_extent_clone()
1440 ret = -ENOENT; in find_extent_clone()
1446 return ret; in find_extent_clone()
1453 int ret; in read_symlink() local
1469 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in read_symlink()
1470 if (ret < 0) in read_symlink()
1472 if (ret) { in read_symlink()
1484 ret = -EIO; in read_symlink()
1498 ret = fs_path_add_from_extent_buffer(dest, path->nodes[0], off, len); in read_symlink()
1502 return ret; in read_symlink()
1513 int ret = 0; in gen_unique_name() local
1534 ret = PTR_ERR(di); in gen_unique_name()
1545 ret = 0; in gen_unique_name()
1554 ret = PTR_ERR(di); in gen_unique_name()
1566 ret = fs_path_add(dest, tmp, strlen(tmp)); in gen_unique_name()
1570 return ret; in gen_unique_name()
1583 int ret; in get_cur_inode_state() local
1589 ret = get_inode_info(sctx->send_root, ino, NULL, &left_gen, NULL, NULL, in get_cur_inode_state()
1591 if (ret < 0 && ret != -ENOENT) in get_cur_inode_state()
1593 left_ret = ret; in get_cur_inode_state()
1598 ret = get_inode_info(sctx->parent_root, ino, NULL, &right_gen, in get_cur_inode_state()
1600 if (ret < 0 && ret != -ENOENT) in get_cur_inode_state()
1602 right_ret = ret; in get_cur_inode_state()
1607 ret = inode_state_no_change; in get_cur_inode_state()
1610 ret = inode_state_did_create; in get_cur_inode_state()
1612 ret = inode_state_will_create; in get_cur_inode_state()
1615 ret = inode_state_did_delete; in get_cur_inode_state()
1617 ret = inode_state_will_delete; in get_cur_inode_state()
1619 ret = -ENOENT; in get_cur_inode_state()
1624 ret = inode_state_did_create; in get_cur_inode_state()
1626 ret = inode_state_will_create; in get_cur_inode_state()
1628 ret = -ENOENT; in get_cur_inode_state()
1633 ret = inode_state_did_delete; in get_cur_inode_state()
1635 ret = inode_state_will_delete; in get_cur_inode_state()
1637 ret = -ENOENT; in get_cur_inode_state()
1640 ret = -ENOENT; in get_cur_inode_state()
1644 return ret; in get_cur_inode_state()
1649 int ret; in is_inode_existent() local
1651 ret = get_cur_inode_state(sctx, ino, gen); in is_inode_existent()
1652 if (ret < 0) in is_inode_existent()
1655 if (ret == inode_state_no_change || in is_inode_existent()
1656 ret == inode_state_did_create || in is_inode_existent()
1657 ret == inode_state_will_delete) in is_inode_existent()
1658 ret = 1; in is_inode_existent()
1660 ret = 0; in is_inode_existent()
1663 return ret; in is_inode_existent()
1674 int ret = 0; in lookup_dir_item_inode() local
1686 ret = -ENOENT; in lookup_dir_item_inode()
1690 ret = PTR_ERR(di); in lookup_dir_item_inode()
1695 ret = -ENOENT; in lookup_dir_item_inode()
1703 return ret; in lookup_dir_item_inode()
1713 int ret; in get_first_ref() local
1728 ret = btrfs_search_slot_for_read(root, &key, path, 1, 0); in get_first_ref()
1729 if (ret < 0) in get_first_ref()
1731 if (!ret) in get_first_ref()
1734 if (ret || found_key.objectid != ino || in get_first_ref()
1737 ret = -ENOENT; in get_first_ref()
1746 ret = fs_path_add_from_extent_buffer(name, path->nodes[0], in get_first_ref()
1755 ret = fs_path_add_from_extent_buffer(name, path->nodes[0], in get_first_ref()
1759 if (ret < 0) in get_first_ref()
1764 ret = get_inode_info(root, parent_dir, NULL, dir_gen, NULL, in get_first_ref()
1766 if (ret < 0) in get_first_ref()
1774 return ret; in get_first_ref()
1781 int ret; in is_first_ref() local
1789 ret = get_first_ref(root, ino, &tmp_dir, NULL, tmp_name); in is_first_ref()
1790 if (ret < 0) in is_first_ref()
1794 ret = 0; in is_first_ref()
1798 ret = !memcmp(tmp_name->start, name, name_len); in is_first_ref()
1802 return ret; in is_first_ref()
1819 int ret = 0; in will_overwrite_ref() local
1827 ret = is_inode_existent(sctx, dir, dir_gen); in will_overwrite_ref()
1828 if (ret <= 0) in will_overwrite_ref()
1837 ret = get_inode_info(sctx->parent_root, dir, NULL, &gen, NULL, in will_overwrite_ref()
1839 if (ret < 0 && ret != -ENOENT) in will_overwrite_ref()
1841 if (ret) { in will_overwrite_ref()
1842 ret = 0; in will_overwrite_ref()
1849 ret = lookup_dir_item_inode(sctx->parent_root, dir, name, name_len, in will_overwrite_ref()
1851 if (ret < 0 && ret != -ENOENT) in will_overwrite_ref()
1853 if (ret) { in will_overwrite_ref()
1854 ret = 0; in will_overwrite_ref()
1864 ret = get_inode_info(sctx->parent_root, other_inode, NULL, in will_overwrite_ref()
1866 if (ret < 0) in will_overwrite_ref()
1869 ret = 1; in will_overwrite_ref()
1872 ret = 0; in will_overwrite_ref()
1876 return ret; in will_overwrite_ref()
1891 int ret = 0; in did_overwrite_ref() local
1899 ret = is_inode_existent(sctx, dir, dir_gen); in did_overwrite_ref()
1900 if (ret <= 0) in did_overwrite_ref()
1904 ret = lookup_dir_item_inode(sctx->send_root, dir, name, name_len, in did_overwrite_ref()
1906 if (ret < 0 && ret != -ENOENT) in did_overwrite_ref()
1908 if (ret) { in did_overwrite_ref()
1910 ret = 0; in did_overwrite_ref()
1914 ret = get_inode_info(sctx->send_root, ow_inode, NULL, &gen, NULL, NULL, in did_overwrite_ref()
1916 if (ret < 0) in did_overwrite_ref()
1920 ret = 0; in did_overwrite_ref()
1933 ret = 1; in did_overwrite_ref()
1935 ret = 0; in did_overwrite_ref()
1938 return ret; in did_overwrite_ref()
1948 int ret = 0; in did_overwrite_first_ref() local
1960 ret = get_first_ref(sctx->parent_root, ino, &dir, &dir_gen, name); in did_overwrite_first_ref()
1961 if (ret < 0) in did_overwrite_first_ref()
1964 ret = did_overwrite_ref(sctx, dir, dir_gen, ino, gen, in did_overwrite_first_ref()
1969 return ret; in did_overwrite_first_ref()
1981 int ret = 0; in name_cache_insert() local
1994 ret = radix_tree_insert(&sctx->name_cache, nce->ino, nce_head); in name_cache_insert()
1995 if (ret < 0) { in name_cache_insert()
1998 return ret; in name_cache_insert()
2005 return ret; in name_cache_insert()
2105 int ret; in __get_cur_name_and_parent() local
2124 ret = fs_path_add(dest, nce->name, nce->name_len); in __get_cur_name_and_parent()
2125 if (ret < 0) in __get_cur_name_and_parent()
2127 ret = nce->ret; in __get_cur_name_and_parent()
2137 ret = is_inode_existent(sctx, ino, gen); in __get_cur_name_and_parent()
2138 if (ret < 0) in __get_cur_name_and_parent()
2141 if (!ret) { in __get_cur_name_and_parent()
2142 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2143 if (ret < 0) in __get_cur_name_and_parent()
2145 ret = 1; in __get_cur_name_and_parent()
2154 ret = get_first_ref(sctx->send_root, ino, in __get_cur_name_and_parent()
2157 ret = get_first_ref(sctx->parent_root, ino, in __get_cur_name_and_parent()
2159 if (ret < 0) in __get_cur_name_and_parent()
2166 ret = did_overwrite_ref(sctx, *parent_ino, *parent_gen, ino, gen, in __get_cur_name_and_parent()
2168 if (ret < 0) in __get_cur_name_and_parent()
2170 if (ret) { in __get_cur_name_and_parent()
2172 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2173 if (ret < 0) in __get_cur_name_and_parent()
2175 ret = 1; in __get_cur_name_and_parent()
2184 ret = -ENOMEM; in __get_cur_name_and_parent()
2193 nce->ret = ret; in __get_cur_name_and_parent()
2203 ret = nce_ret; in __get_cur_name_and_parent()
2207 return ret; in __get_cur_name_and_parent()
2238 int ret = 0; in get_cur_path() local
2246 ret = -ENOMEM; in get_cur_path()
2259 ret = gen_unique_name(sctx, ino, gen, name); in get_cur_path()
2260 if (ret < 0) in get_cur_path()
2262 ret = fs_path_add_path(dest, name); in get_cur_path()
2268 ret = gen_unique_name(sctx, ino, gen, name); in get_cur_path()
2271 ret = get_first_ref(sctx->parent_root, ino, in get_cur_path()
2274 ret = __get_cur_name_and_parent(sctx, ino, gen, in get_cur_path()
2277 if (ret) in get_cur_path()
2281 if (ret < 0) in get_cur_path()
2284 ret = fs_path_add_path(dest, name); in get_cur_path()
2285 if (ret < 0) in get_cur_path()
2294 if (!ret) in get_cur_path()
2296 return ret; in get_cur_path()
2304 int ret; in send_subvol_begin() local
2328 ret = btrfs_search_slot_for_read(send_root->fs_info->tree_root, in send_subvol_begin()
2330 if (ret < 0) in send_subvol_begin()
2332 if (ret) { in send_subvol_begin()
2333 ret = -ENOENT; in send_subvol_begin()
2341 ret = -ENOENT; in send_subvol_begin()
2350 ret = begin_cmd(sctx, BTRFS_SEND_C_SNAPSHOT); in send_subvol_begin()
2351 if (ret < 0) in send_subvol_begin()
2354 ret = begin_cmd(sctx, BTRFS_SEND_C_SUBVOL); in send_subvol_begin()
2355 if (ret < 0) in send_subvol_begin()
2381 ret = send_cmd(sctx); in send_subvol_begin()
2387 return ret; in send_subvol_begin()
2392 int ret = 0; in send_truncate() local
2401 ret = begin_cmd(sctx, BTRFS_SEND_C_TRUNCATE); in send_truncate()
2402 if (ret < 0) in send_truncate()
2405 ret = get_cur_path(sctx, ino, gen, p); in send_truncate()
2406 if (ret < 0) in send_truncate()
2411 ret = send_cmd(sctx); in send_truncate()
2416 return ret; in send_truncate()
2421 int ret = 0; in send_chmod() local
2430 ret = begin_cmd(sctx, BTRFS_SEND_C_CHMOD); in send_chmod()
2431 if (ret < 0) in send_chmod()
2434 ret = get_cur_path(sctx, ino, gen, p); in send_chmod()
2435 if (ret < 0) in send_chmod()
2440 ret = send_cmd(sctx); in send_chmod()
2445 return ret; in send_chmod()
2450 int ret = 0; in send_chown() local
2459 ret = begin_cmd(sctx, BTRFS_SEND_C_CHOWN); in send_chown()
2460 if (ret < 0) in send_chown()
2463 ret = get_cur_path(sctx, ino, gen, p); in send_chown()
2464 if (ret < 0) in send_chown()
2470 ret = send_cmd(sctx); in send_chown()
2475 return ret; in send_chown()
2480 int ret = 0; in send_utimes() local
2496 ret = -ENOMEM; in send_utimes()
2503 ret = btrfs_search_slot(NULL, sctx->send_root, &key, path, 0, 0); in send_utimes()
2504 if (ret < 0) in send_utimes()
2511 ret = begin_cmd(sctx, BTRFS_SEND_C_UTIMES); in send_utimes()
2512 if (ret < 0) in send_utimes()
2515 ret = get_cur_path(sctx, ino, gen, p); in send_utimes()
2516 if (ret < 0) in send_utimes()
2524 ret = send_cmd(sctx); in send_utimes()
2530 return ret; in send_utimes()
2540 int ret = 0; in send_create_inode() local
2554 ret = get_inode_info(sctx->send_root, ino, NULL, &gen, &mode, in send_create_inode()
2556 if (ret < 0) in send_create_inode()
2579 ret = -ENOTSUPP; in send_create_inode()
2583 ret = begin_cmd(sctx, cmd); in send_create_inode()
2584 if (ret < 0) in send_create_inode()
2587 ret = gen_unique_name(sctx, ino, gen, p); in send_create_inode()
2588 if (ret < 0) in send_create_inode()
2596 ret = read_symlink(sctx->send_root, ino, p); in send_create_inode()
2597 if (ret < 0) in send_create_inode()
2606 ret = send_cmd(sctx); in send_create_inode()
2607 if (ret < 0) in send_create_inode()
2614 return ret; in send_create_inode()
2624 int ret = 0; in did_create_dir() local
2635 ret = -ENOMEM; in did_create_dir()
2642 ret = btrfs_search_slot(NULL, sctx->send_root, &key, path, 0, 0); in did_create_dir()
2643 if (ret < 0) in did_create_dir()
2650 ret = btrfs_next_leaf(sctx->send_root, path); in did_create_dir()
2651 if (ret < 0) { in did_create_dir()
2653 } else if (ret > 0) { in did_create_dir()
2654 ret = 0; in did_create_dir()
2663 ret = 0; in did_create_dir()
2672 ret = 1; in did_create_dir()
2681 return ret; in did_create_dir()
2692 int ret; in send_create_inode_if_needed() local
2695 ret = did_create_dir(sctx, sctx->cur_ino); in send_create_inode_if_needed()
2696 if (ret < 0) in send_create_inode_if_needed()
2698 if (ret) { in send_create_inode_if_needed()
2699 ret = 0; in send_create_inode_if_needed()
2704 ret = send_create_inode(sctx, sctx->cur_ino); in send_create_inode_if_needed()
2705 if (ret < 0) in send_create_inode_if_needed()
2709 return ret; in send_create_inode_if_needed()
2796 int ret; in orphanize_inode() local
2803 ret = gen_unique_name(sctx, ino, gen, orphan); in orphanize_inode()
2804 if (ret < 0) in orphanize_inode()
2807 ret = send_rename(sctx, path, orphan); in orphanize_inode()
2811 return ret; in orphanize_inode()
2887 int ret = 0; in can_rmdir() local
2908 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in can_rmdir()
2909 if (ret < 0) in can_rmdir()
2916 ret = btrfs_next_leaf(root, path); in can_rmdir()
2917 if (ret < 0) in can_rmdir()
2919 else if (ret > 0) in can_rmdir()
2939 ret = PTR_ERR(odi); in can_rmdir()
2944 ret = 0; in can_rmdir()
2949 ret = 0; in can_rmdir()
2956 ret = 1; in can_rmdir()
2960 return ret; in can_rmdir()
3041 int ret; in add_pending_dir_move() local
3068 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3069 if (ret < 0) in add_pending_dir_move()
3073 ret = dup_ref(cur, &pm->update_refs); in add_pending_dir_move()
3074 if (ret < 0) in add_pending_dir_move()
3078 ret = add_waiting_dir_move(sctx, pm->ino, is_orphan); in add_pending_dir_move()
3079 if (ret) in add_pending_dir_move()
3088 ret = 0; in add_pending_dir_move()
3090 if (ret) { in add_pending_dir_move()
3094 return ret; in add_pending_dir_move()
3125 int ret; in apply_dir_move() local
3130 ret = -ENOMEM; in apply_dir_move()
3140 ret = gen_unique_name(sctx, pm->ino, in apply_dir_move()
3143 ret = get_first_ref(sctx->parent_root, pm->ino, in apply_dir_move()
3145 if (ret < 0) in apply_dir_move()
3147 ret = get_cur_path(sctx, parent_ino, parent_gen, in apply_dir_move()
3149 if (ret < 0) in apply_dir_move()
3151 ret = fs_path_add_path(from_path, name); in apply_dir_move()
3153 if (ret < 0) in apply_dir_move()
3160 ret = get_cur_path(sctx, pm->ino, pm->gen, to_path); in apply_dir_move()
3161 if (ret < 0) in apply_dir_move()
3164 ret = send_rename(sctx, from_path, to_path); in apply_dir_move()
3165 if (ret < 0) in apply_dir_move()
3176 ret = can_rmdir(sctx, rmdir_ino, odi->gen, sctx->cur_ino + 1); in apply_dir_move()
3177 if (ret < 0) in apply_dir_move()
3179 if (!ret) in apply_dir_move()
3184 ret = -ENOMEM; in apply_dir_move()
3187 ret = get_cur_path(sctx, rmdir_ino, odi->gen, name); in apply_dir_move()
3188 if (ret < 0) in apply_dir_move()
3190 ret = send_rmdir(sctx, name); in apply_dir_move()
3191 if (ret < 0) in apply_dir_move()
3197 ret = send_utimes(sctx, pm->ino, pm->gen); in apply_dir_move()
3198 if (ret < 0) in apply_dir_move()
3208 ret = send_utimes(sctx, cur->dir, cur->dir_gen); in apply_dir_move()
3209 if (ret < 0) in apply_dir_move()
3219 return ret; in apply_dir_move()
3250 int ret = 0; in apply_children_dir_moves() local
3262 ret = apply_dir_move(sctx, pm); in apply_children_dir_moves()
3264 if (ret) in apply_children_dir_moves()
3277 return ret; in apply_children_dir_moves()
3326 int ret = 0; in wait_for_dest_dir_move() local
3339 ret = btrfs_search_slot(NULL, sctx->parent_root, &key, path, 0, 0); in wait_for_dest_dir_move()
3340 if (ret < 0) { in wait_for_dest_dir_move()
3342 } else if (ret > 0) { in wait_for_dest_dir_move()
3343 ret = 0; in wait_for_dest_dir_move()
3350 ret = 0; in wait_for_dest_dir_move()
3363 ret = 0; in wait_for_dest_dir_move()
3367 ret = get_inode_info(sctx->parent_root, di_key.objectid, NULL, in wait_for_dest_dir_move()
3369 if (ret < 0) in wait_for_dest_dir_move()
3371 ret = get_inode_info(sctx->send_root, di_key.objectid, NULL, in wait_for_dest_dir_move()
3373 if (ret < 0) { in wait_for_dest_dir_move()
3374 if (ret == -ENOENT) in wait_for_dest_dir_move()
3375 ret = 0; in wait_for_dest_dir_move()
3381 ret = 0; in wait_for_dest_dir_move()
3386 ret = add_pending_dir_move(sctx, in wait_for_dest_dir_move()
3393 if (!ret) in wait_for_dest_dir_move()
3394 ret = 1; in wait_for_dest_dir_move()
3398 return ret; in wait_for_dest_dir_move()
3414 int ret; in is_ancestor() local
3419 ret = get_first_ref(root, ino, &parent, &parent_gen, fs_path); in is_ancestor()
3420 if (ret < 0) { in is_ancestor()
3421 if (ret == -ENOENT && ino == ino2) in is_ancestor()
3422 ret = 0; in is_ancestor()
3423 return ret; in is_ancestor()
3436 int ret = 0; in wait_for_parent_move() local
3446 ret = -ENOMEM; in wait_for_parent_move()
3469 ret = is_ancestor(sctx->parent_root, in wait_for_parent_move()
3478 ret = get_first_ref(sctx->send_root, ino, &parent_ino_after, in wait_for_parent_move()
3480 if (ret < 0) in wait_for_parent_move()
3482 ret = get_first_ref(sctx->parent_root, ino, &parent_ino_before, in wait_for_parent_move()
3484 if (ret < 0 && ret != -ENOENT) { in wait_for_parent_move()
3486 } else if (ret == -ENOENT) { in wait_for_parent_move()
3487 ret = 0; in wait_for_parent_move()
3496 ret = 1; in wait_for_parent_move()
3506 if (ret == 1) { in wait_for_parent_move()
3507 ret = add_pending_dir_move(sctx, in wait_for_parent_move()
3514 if (!ret) in wait_for_parent_move()
3515 ret = 1; in wait_for_parent_move()
3518 return ret; in wait_for_parent_move()
3526 int ret = 0; in process_recorded_refs() local
3549 ret = -ENOMEM; in process_recorded_refs()
3565 ret = did_overwrite_first_ref(sctx, sctx->cur_ino, in process_recorded_refs()
3567 if (ret < 0) in process_recorded_refs()
3569 if (ret) in process_recorded_refs()
3573 ret = gen_unique_name(sctx, sctx->cur_ino, in process_recorded_refs()
3575 if (ret < 0) in process_recorded_refs()
3579 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, in process_recorded_refs()
3581 if (ret < 0) in process_recorded_refs()
3593 ret = get_cur_inode_state(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3594 if (ret < 0) in process_recorded_refs()
3596 if (ret == inode_state_will_create) { in process_recorded_refs()
3597 ret = 0; in process_recorded_refs()
3606 ret = 1; in process_recorded_refs()
3615 if (!ret) in process_recorded_refs()
3616 ret = did_create_dir(sctx, cur->dir); in process_recorded_refs()
3617 if (ret < 0) in process_recorded_refs()
3619 if (!ret) { in process_recorded_refs()
3620 ret = send_create_inode(sctx, cur->dir); in process_recorded_refs()
3621 if (ret < 0) in process_recorded_refs()
3632 ret = will_overwrite_ref(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3635 if (ret < 0) in process_recorded_refs()
3637 if (ret) { in process_recorded_refs()
3638 ret = is_first_ref(sctx->parent_root, in process_recorded_refs()
3641 if (ret < 0) in process_recorded_refs()
3643 if (ret) { in process_recorded_refs()
3646 ret = orphanize_inode(sctx, ow_inode, ow_gen, in process_recorded_refs()
3648 if (ret < 0) in process_recorded_refs()
3666 ret = send_unlink(sctx, cur->full_path); in process_recorded_refs()
3667 if (ret < 0) in process_recorded_refs()
3673 ret = wait_for_dest_dir_move(sctx, cur, is_orphan); in process_recorded_refs()
3674 if (ret < 0) in process_recorded_refs()
3676 if (ret == 1) { in process_recorded_refs()
3684 ret = wait_for_parent_move(sctx, cur, is_orphan); in process_recorded_refs()
3685 if (ret < 0) in process_recorded_refs()
3687 if (ret == 1) { in process_recorded_refs()
3699 ret = send_rename(sctx, valid_path, cur->full_path); in process_recorded_refs()
3700 if (ret < 0) in process_recorded_refs()
3703 ret = fs_path_copy(valid_path, cur->full_path); in process_recorded_refs()
3704 if (ret < 0) in process_recorded_refs()
3713 ret = send_rename(sctx, valid_path, in process_recorded_refs()
3715 if (!ret) in process_recorded_refs()
3716 ret = fs_path_copy(valid_path, in process_recorded_refs()
3718 if (ret < 0) in process_recorded_refs()
3721 ret = send_link(sctx, cur->full_path, in process_recorded_refs()
3723 if (ret < 0) in process_recorded_refs()
3727 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3728 if (ret < 0) in process_recorded_refs()
3739 ret = can_rmdir(sctx, sctx->cur_ino, sctx->cur_inode_gen, in process_recorded_refs()
3741 if (ret < 0) in process_recorded_refs()
3743 if (ret) { in process_recorded_refs()
3744 ret = send_rmdir(sctx, valid_path); in process_recorded_refs()
3745 if (ret < 0) in process_recorded_refs()
3748 ret = orphanize_inode(sctx, sctx->cur_ino, in process_recorded_refs()
3750 if (ret < 0) in process_recorded_refs()
3756 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3757 if (ret < 0) in process_recorded_refs()
3767 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3768 if (ret < 0) in process_recorded_refs()
3777 ret = did_overwrite_ref(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3780 if (ret < 0) in process_recorded_refs()
3782 if (!ret) { in process_recorded_refs()
3783 ret = send_unlink(sctx, cur->full_path); in process_recorded_refs()
3784 if (ret < 0) in process_recorded_refs()
3787 ret = dup_ref(cur, &check_dirs); in process_recorded_refs()
3788 if (ret < 0) in process_recorded_refs()
3800 ret = send_unlink(sctx, valid_path); in process_recorded_refs()
3801 if (ret < 0) in process_recorded_refs()
3821 ret = get_cur_inode_state(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3822 if (ret < 0) in process_recorded_refs()
3825 if (ret == inode_state_did_create || in process_recorded_refs()
3826 ret == inode_state_no_change) { in process_recorded_refs()
3828 ret = send_utimes(sctx, cur->dir, cur->dir_gen); in process_recorded_refs()
3829 if (ret < 0) in process_recorded_refs()
3831 } else if (ret == inode_state_did_delete && in process_recorded_refs()
3833 ret = can_rmdir(sctx, cur->dir, cur->dir_gen, in process_recorded_refs()
3835 if (ret < 0) in process_recorded_refs()
3837 if (ret) { in process_recorded_refs()
3838 ret = get_cur_path(sctx, cur->dir, in process_recorded_refs()
3840 if (ret < 0) in process_recorded_refs()
3842 ret = send_rmdir(sctx, valid_path); in process_recorded_refs()
3843 if (ret < 0) in process_recorded_refs()
3850 ret = 0; in process_recorded_refs()
3856 return ret; in process_recorded_refs()
3862 int ret = 0; in record_ref() local
3871 ret = get_inode_info(root, dir, NULL, &gen, NULL, NULL, in record_ref()
3873 if (ret < 0) in record_ref()
3876 ret = get_cur_path(sctx, dir, gen, p); in record_ref()
3877 if (ret < 0) in record_ref()
3879 ret = fs_path_add_path(p, name); in record_ref()
3880 if (ret < 0) in record_ref()
3883 ret = __record_ref(refs, dir, gen, p); in record_ref()
3886 if (ret) in record_ref()
3888 return ret; in record_ref()
3912 int ret; in record_new_ref() local
3914 ret = iterate_inode_ref(sctx->send_root, sctx->left_path, in record_new_ref()
3916 if (ret < 0) in record_new_ref()
3918 ret = 0; in record_new_ref()
3921 return ret; in record_new_ref()
3926 int ret; in record_deleted_ref() local
3928 ret = iterate_inode_ref(sctx->parent_root, sctx->right_path, in record_deleted_ref()
3930 if (ret < 0) in record_deleted_ref()
3932 ret = 0; in record_deleted_ref()
3935 return ret; in record_deleted_ref()
3952 int ret; in __find_iref() local
3960 ret = get_inode_info(ctx->root, dir, NULL, &dir_gen, NULL, in __find_iref()
3962 if (ret) in __find_iref()
3963 return ret; in __find_iref()
3977 int ret; in find_iref() local
3986 ret = iterate_inode_ref(root, path, key, 0, __find_iref, &ctx); in find_iref()
3987 if (ret < 0) in find_iref()
3988 return ret; in find_iref()
4001 int ret; in __record_changed_new_ref() local
4004 ret = get_inode_info(sctx->send_root, dir, NULL, &dir_gen, NULL, in __record_changed_new_ref()
4006 if (ret) in __record_changed_new_ref()
4007 return ret; in __record_changed_new_ref()
4009 ret = find_iref(sctx->parent_root, sctx->right_path, in __record_changed_new_ref()
4011 if (ret == -ENOENT) in __record_changed_new_ref()
4012 ret = __record_new_ref(num, dir, index, name, sctx); in __record_changed_new_ref()
4013 else if (ret > 0) in __record_changed_new_ref()
4014 ret = 0; in __record_changed_new_ref()
4016 return ret; in __record_changed_new_ref()
4024 int ret; in __record_changed_deleted_ref() local
4027 ret = get_inode_info(sctx->parent_root, dir, NULL, &dir_gen, NULL, in __record_changed_deleted_ref()
4029 if (ret) in __record_changed_deleted_ref()
4030 return ret; in __record_changed_deleted_ref()
4032 ret = find_iref(sctx->send_root, sctx->left_path, sctx->cmp_key, in __record_changed_deleted_ref()
4034 if (ret == -ENOENT) in __record_changed_deleted_ref()
4035 ret = __record_deleted_ref(num, dir, index, name, sctx); in __record_changed_deleted_ref()
4036 else if (ret > 0) in __record_changed_deleted_ref()
4037 ret = 0; in __record_changed_deleted_ref()
4039 return ret; in __record_changed_deleted_ref()
4044 int ret = 0; in record_changed_ref() local
4046 ret = iterate_inode_ref(sctx->send_root, sctx->left_path, in record_changed_ref()
4048 if (ret < 0) in record_changed_ref()
4050 ret = iterate_inode_ref(sctx->parent_root, sctx->right_path, in record_changed_ref()
4052 if (ret < 0) in record_changed_ref()
4054 ret = 0; in record_changed_ref()
4057 return ret; in record_changed_ref()
4067 int ret; in process_all_refs() local
4090 ret = -EINVAL; in process_all_refs()
4097 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_refs()
4098 if (ret < 0) in process_all_refs()
4105 ret = btrfs_next_leaf(root, path); in process_all_refs()
4106 if (ret < 0) in process_all_refs()
4108 else if (ret > 0) in process_all_refs()
4120 ret = iterate_inode_ref(root, path, &found_key, 0, cb, sctx); in process_all_refs()
4121 if (ret < 0) in process_all_refs()
4128 ret = process_recorded_refs(sctx, &pending_move); in process_all_refs()
4134 return ret; in process_all_refs()
4142 int ret = 0; in send_set_xattr() local
4144 ret = begin_cmd(sctx, BTRFS_SEND_C_SET_XATTR); in send_set_xattr()
4145 if (ret < 0) in send_set_xattr()
4152 ret = send_cmd(sctx); in send_set_xattr()
4156 return ret; in send_set_xattr()
4163 int ret = 0; in send_remove_xattr() local
4165 ret = begin_cmd(sctx, BTRFS_SEND_C_REMOVE_XATTR); in send_remove_xattr()
4166 if (ret < 0) in send_remove_xattr()
4172 ret = send_cmd(sctx); in send_remove_xattr()
4176 return ret; in send_remove_xattr()
4184 int ret; in __process_new_xattr() local
4209 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in __process_new_xattr()
4210 if (ret < 0) in __process_new_xattr()
4213 ret = send_set_xattr(sctx, p, name, name_len, data, data_len); in __process_new_xattr()
4217 return ret; in __process_new_xattr()
4225 int ret; in __process_deleted_xattr() local
4233 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in __process_deleted_xattr()
4234 if (ret < 0) in __process_deleted_xattr()
4237 ret = send_remove_xattr(sctx, p, name, name_len); in __process_deleted_xattr()
4241 return ret; in __process_deleted_xattr()
4246 int ret = 0; in process_new_xattr() local
4248 ret = iterate_dir_item(sctx->send_root, sctx->left_path, in process_new_xattr()
4251 return ret; in process_new_xattr()
4256 int ret; in process_deleted_xattr() local
4258 ret = iterate_dir_item(sctx->parent_root, sctx->right_path, in process_deleted_xattr()
4261 return ret; in process_deleted_xattr()
4297 int ret; in find_xattr() local
4306 ret = iterate_dir_item(root, path, key, __find_xattr, &ctx); in find_xattr()
4307 if (ret < 0) in find_xattr()
4308 return ret; in find_xattr()
4327 int ret; in __process_changed_new_xattr() local
4332 ret = find_xattr(sctx->parent_root, sctx->right_path, in __process_changed_new_xattr()
4335 if (ret == -ENOENT) { in __process_changed_new_xattr()
4336 ret = __process_new_xattr(num, di_key, name, name_len, data, in __process_changed_new_xattr()
4338 } else if (ret >= 0) { in __process_changed_new_xattr()
4341 ret = __process_new_xattr(num, di_key, name, name_len, in __process_changed_new_xattr()
4344 ret = 0; in __process_changed_new_xattr()
4349 return ret; in __process_changed_new_xattr()
4357 int ret; in __process_changed_deleted_xattr() local
4360 ret = find_xattr(sctx->send_root, sctx->left_path, sctx->cmp_key, in __process_changed_deleted_xattr()
4362 if (ret == -ENOENT) in __process_changed_deleted_xattr()
4363 ret = __process_deleted_xattr(num, di_key, name, name_len, data, in __process_changed_deleted_xattr()
4365 else if (ret >= 0) in __process_changed_deleted_xattr()
4366 ret = 0; in __process_changed_deleted_xattr()
4368 return ret; in __process_changed_deleted_xattr()
4373 int ret = 0; in process_changed_xattr() local
4375 ret = iterate_dir_item(sctx->send_root, sctx->left_path, in process_changed_xattr()
4377 if (ret < 0) in process_changed_xattr()
4379 ret = iterate_dir_item(sctx->parent_root, sctx->right_path, in process_changed_xattr()
4383 return ret; in process_changed_xattr()
4388 int ret; in process_all_new_xattrs() local
4405 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_new_xattrs()
4406 if (ret < 0) in process_all_new_xattrs()
4413 ret = btrfs_next_leaf(root, path); in process_all_new_xattrs()
4414 if (ret < 0) { in process_all_new_xattrs()
4416 } else if (ret > 0) { in process_all_new_xattrs()
4417 ret = 0; in process_all_new_xattrs()
4426 ret = 0; in process_all_new_xattrs()
4430 ret = iterate_dir_item(root, path, &found_key, in process_all_new_xattrs()
4432 if (ret < 0) in process_all_new_xattrs()
4440 return ret; in process_all_new_xattrs()
4454 ssize_t ret = 0; in fill_read_buf() local
4486 ret = -ENOMEM; in fill_read_buf()
4496 ret = -EIO; in fill_read_buf()
4502 memcpy(sctx->read_buf + ret, addr + pg_offset, cur_len); in fill_read_buf()
4509 ret += cur_len; in fill_read_buf()
4513 return ret; in fill_read_buf()
4522 int ret = 0; in send_write() local
4535 ret = num_read; in send_write()
4539 ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE); in send_write()
4540 if (ret < 0) in send_write()
4543 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_write()
4544 if (ret < 0) in send_write()
4551 ret = send_cmd(sctx); in send_write()
4556 if (ret < 0) in send_write()
4557 return ret; in send_write()
4568 int ret = 0; in send_clone() local
4581 ret = begin_cmd(sctx, BTRFS_SEND_C_CLONE); in send_clone()
4582 if (ret < 0) in send_clone()
4585 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_clone()
4586 if (ret < 0) in send_clone()
4594 ret = get_inode_info(sctx->send_root, clone_root->ino, NULL, in send_clone()
4596 if (ret < 0) in send_clone()
4598 ret = get_cur_path(sctx, clone_root->ino, gen, p); in send_clone()
4600 ret = get_inode_path(clone_root->root, clone_root->ino, p); in send_clone()
4602 if (ret < 0) in send_clone()
4626 ret = send_cmd(sctx); in send_clone()
4631 return ret; in send_clone()
4640 int ret = 0; in send_update_extent() local
4647 ret = begin_cmd(sctx, BTRFS_SEND_C_UPDATE_EXTENT); in send_update_extent()
4648 if (ret < 0) in send_update_extent()
4651 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_update_extent()
4652 if (ret < 0) in send_update_extent()
4659 ret = send_cmd(sctx); in send_update_extent()
4664 return ret; in send_update_extent()
4672 int ret = 0; in send_hole() local
4677 ret = get_cur_path(sctx, sctx->cur_ino, sctx->cur_inode_gen, p); in send_hole()
4678 if (ret < 0) in send_hole()
4684 ret = begin_cmd(sctx, BTRFS_SEND_C_WRITE); in send_hole()
4685 if (ret < 0) in send_hole()
4690 ret = send_cmd(sctx); in send_hole()
4691 if (ret < 0) in send_hole()
4697 return ret; in send_hole()
4711 int ret; in send_extent_data() local
4715 ret = send_write(sctx, offset + sent, size); in send_extent_data()
4716 if (ret < 0) in send_extent_data()
4717 return ret; in send_extent_data()
4718 if (!ret) in send_extent_data()
4720 sent += ret; in send_extent_data()
4734 int ret; in clone_range() local
4765 ret = btrfs_search_slot(NULL, clone_root->root, &key, path, 0, 0); in clone_range()
4766 if (ret < 0) in clone_range()
4768 if (ret > 0 && path->slots[0] > 0) { in clone_range()
4784 ret = btrfs_next_leaf(clone_root->root, path); in clone_range()
4785 if (ret < 0) in clone_range()
4787 else if (ret > 0) in clone_range()
4820 ret = send_extent_data(sctx, offset, hole_len); in clone_range()
4821 if (ret < 0) in clone_range()
4839 ret = send_clone(sctx, offset, clone_len, clone_root); in clone_range()
4841 ret = send_extent_data(sctx, offset, clone_len); in clone_range()
4843 if (ret < 0) in clone_range()
4857 ret = send_extent_data(sctx, offset, len); in clone_range()
4859 ret = 0; in clone_range()
4862 return ret; in clone_range()
4870 int ret = 0; in send_write_or_clone() local
4896 ret = 0; in send_write_or_clone()
4906 ret = clone_range(sctx, clone_root, disk_byte, data_offset, in send_write_or_clone()
4909 ret = send_extent_data(sctx, offset, len); in send_write_or_clone()
4912 return ret; in send_write_or_clone()
4919 int ret = 0; in is_extent_unchanged() local
4948 ret = 0; in is_extent_unchanged()
4980 ret = btrfs_search_slot_for_read(sctx->parent_root, &key, path, 0, 0); in is_extent_unchanged()
4981 if (ret < 0) in is_extent_unchanged()
4983 if (ret) { in is_extent_unchanged()
4984 ret = 0; in is_extent_unchanged()
4997 ret = (left_disknr) ? 0 : 1; in is_extent_unchanged()
5009 ret = 0; in is_extent_unchanged()
5024 ret = (left_disknr) ? 0 : 1; in is_extent_unchanged()
5043 ret = 0; in is_extent_unchanged()
5050 ret = btrfs_next_item(sctx->parent_root, path); in is_extent_unchanged()
5051 if (ret < 0) in is_extent_unchanged()
5053 if (!ret) { in is_extent_unchanged()
5058 if (ret || found_key.objectid != key.objectid || in is_extent_unchanged()
5064 ret = 0; in is_extent_unchanged()
5075 ret = 1; in is_extent_unchanged()
5077 ret = 0; in is_extent_unchanged()
5082 return ret; in is_extent_unchanged()
5093 int ret; in get_last_extent() local
5104 ret = btrfs_search_slot_for_read(root, &key, path, 0, 1); in get_last_extent()
5105 if (ret < 0) in get_last_extent()
5107 ret = 0; in get_last_extent()
5127 return ret; in get_last_extent()
5136 int ret = 0; in maybe_send_hole() local
5142 ret = get_last_extent(sctx, key->offset - 1); in maybe_send_hole()
5143 if (ret) in maybe_send_hole()
5144 return ret; in maybe_send_hole()
5169 ret = get_last_extent(sctx, key->offset - 1); in maybe_send_hole()
5170 if (ret) in maybe_send_hole()
5171 return ret; in maybe_send_hole()
5175 ret = send_hole(sctx, key->offset); in maybe_send_hole()
5177 return ret; in maybe_send_hole()
5185 int ret = 0; in process_extent() local
5191 ret = is_extent_unchanged(sctx, path, key); in process_extent()
5192 if (ret < 0) in process_extent()
5194 if (ret) { in process_extent()
5195 ret = 0; in process_extent()
5214 ret = 0; in process_extent()
5220 ret = 0; in process_extent()
5226 ret = find_extent_clone(sctx, path, key->objectid, key->offset, in process_extent()
5228 if (ret != -ENOENT && ret < 0) in process_extent()
5231 ret = send_write_or_clone(sctx, path, key, found_clone); in process_extent()
5232 if (ret) in process_extent()
5235 ret = maybe_send_hole(sctx, path, key); in process_extent()
5237 return ret; in process_extent()
5242 int ret; in process_all_extents() local
5258 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in process_all_extents()
5259 if (ret < 0) in process_all_extents()
5267 ret = btrfs_next_leaf(root, path); in process_all_extents()
5268 if (ret < 0) { in process_all_extents()
5270 } else if (ret > 0) { in process_all_extents()
5271 ret = 0; in process_all_extents()
5281 ret = 0; in process_all_extents()
5285 ret = process_extent(sctx, path, &found_key); in process_all_extents()
5286 if (ret < 0) in process_all_extents()
5294 return ret; in process_all_extents()
5301 int ret = 0; in process_recorded_refs_if_needed() local
5311 ret = process_recorded_refs(sctx, pending_move); in process_recorded_refs_if_needed()
5312 if (ret < 0) in process_recorded_refs_if_needed()
5317 return ret; in process_recorded_refs_if_needed()
5322 int ret = 0; in finish_inode_if_needed() local
5334 ret = process_recorded_refs_if_needed(sctx, at_end, &pending_move, in finish_inode_if_needed()
5336 if (ret < 0) in finish_inode_if_needed()
5359 ret = get_inode_info(sctx->send_root, sctx->cur_ino, NULL, NULL, in finish_inode_if_needed()
5361 if (ret < 0) in finish_inode_if_needed()
5369 ret = get_inode_info(sctx->parent_root, sctx->cur_ino, in finish_inode_if_needed()
5372 if (ret < 0) in finish_inode_if_needed()
5386 ret = get_last_extent(sctx, (u64)-1); in finish_inode_if_needed()
5387 if (ret) in finish_inode_if_needed()
5392 ret = send_hole(sctx, sctx->cur_inode_size); in finish_inode_if_needed()
5393 if (ret) in finish_inode_if_needed()
5397 ret = send_truncate(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5399 if (ret < 0) in finish_inode_if_needed()
5404 ret = send_chown(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5406 if (ret < 0) in finish_inode_if_needed()
5410 ret = send_chmod(sctx, sctx->cur_ino, sctx->cur_inode_gen, in finish_inode_if_needed()
5412 if (ret < 0) in finish_inode_if_needed()
5421 ret = apply_children_dir_moves(sctx); in finish_inode_if_needed()
5422 if (ret) in finish_inode_if_needed()
5432 ret = send_utimes(sctx, sctx->cur_ino, sctx->cur_inode_gen); in finish_inode_if_needed()
5433 if (ret < 0) in finish_inode_if_needed()
5438 return ret; in finish_inode_if_needed()
5444 int ret = 0; in changed_inode() local
5505 ret = send_create_inode_if_needed(sctx); in changed_inode()
5533 ret = process_all_refs(sctx, in changed_inode()
5535 if (ret < 0) in changed_inode()
5550 ret = send_create_inode_if_needed(sctx); in changed_inode()
5551 if (ret < 0) in changed_inode()
5554 ret = process_all_refs(sctx, BTRFS_COMPARE_TREE_NEW); in changed_inode()
5555 if (ret < 0) in changed_inode()
5567 ret = process_all_extents(sctx); in changed_inode()
5568 if (ret < 0) in changed_inode()
5570 ret = process_all_new_xattrs(sctx); in changed_inode()
5571 if (ret < 0) in changed_inode()
5586 return ret; in changed_inode()
5602 int ret = 0; in changed_ref() local
5609 ret = record_new_ref(sctx); in changed_ref()
5611 ret = record_deleted_ref(sctx); in changed_ref()
5613 ret = record_changed_ref(sctx); in changed_ref()
5616 return ret; in changed_ref()
5627 int ret = 0; in changed_xattr() local
5633 ret = process_new_xattr(sctx); in changed_xattr()
5635 ret = process_deleted_xattr(sctx); in changed_xattr()
5637 ret = process_changed_xattr(sctx); in changed_xattr()
5640 return ret; in changed_xattr()
5651 int ret = 0; in changed_extent() local
5657 ret = process_extent(sctx, sctx->left_path, in changed_extent()
5661 return ret; in changed_extent()
5667 int ret; in dir_changed() local
5669 ret = get_inode_info(sctx->send_root, dir, NULL, &new_gen, NULL, NULL, in dir_changed()
5671 if (ret) in dir_changed()
5672 return ret; in dir_changed()
5674 ret = get_inode_info(sctx->parent_root, dir, NULL, &orig_gen, NULL, in dir_changed()
5676 if (ret) in dir_changed()
5677 return ret; in dir_changed()
5692 int ret = 0; in compare_refs() local
5698 ret = dir_changed(sctx, dirid); in compare_refs()
5713 ret = dir_changed(sctx, dirid); in compare_refs()
5714 if (ret) in compare_refs()
5719 return ret; in compare_refs()
5734 int ret = 0; in changed_cb() local
5740 ret = compare_refs(sctx, left_path, key); in changed_cb()
5741 if (!ret) in changed_cb()
5743 if (ret < 0) in changed_cb()
5744 return ret; in changed_cb()
5751 ret = 0; in changed_cb()
5758 ret = finish_inode_if_needed(sctx, 0); in changed_cb()
5759 if (ret < 0) in changed_cb()
5768 ret = changed_inode(sctx, result); in changed_cb()
5771 ret = changed_ref(sctx, result); in changed_cb()
5773 ret = changed_xattr(sctx, result); in changed_cb()
5775 ret = changed_extent(sctx, result); in changed_cb()
5778 return ret; in changed_cb()
5783 int ret; in full_send_tree() local
5799 ret = btrfs_search_slot_for_read(send_root, &key, path, 1, 0); in full_send_tree()
5800 if (ret < 0) in full_send_tree()
5802 if (ret) in full_send_tree()
5810 ret = changed_cb(send_root, NULL, path, NULL, in full_send_tree()
5812 if (ret < 0) in full_send_tree()
5819 ret = btrfs_next_item(send_root, path); in full_send_tree()
5820 if (ret < 0) in full_send_tree()
5822 if (ret) { in full_send_tree()
5823 ret = 0; in full_send_tree()
5829 ret = finish_inode_if_needed(sctx, 1); in full_send_tree()
5833 return ret; in full_send_tree()
5838 int ret; in send_subvol() local
5841 ret = send_header(sctx); in send_subvol()
5842 if (ret < 0) in send_subvol()
5846 ret = send_subvol_begin(sctx); in send_subvol()
5847 if (ret < 0) in send_subvol()
5851 ret = btrfs_compare_trees(sctx->send_root, sctx->parent_root, in send_subvol()
5853 if (ret < 0) in send_subvol()
5855 ret = finish_inode_if_needed(sctx, 1); in send_subvol()
5856 if (ret < 0) in send_subvol()
5859 ret = full_send_tree(sctx); in send_subvol()
5860 if (ret < 0) in send_subvol()
5866 return ret; in send_subvol()
5931 int ret = 0; in btrfs_ioctl_send() local
5969 ret = -EPERM; in btrfs_ioctl_send()
5975 ret = PTR_ERR(arg); in btrfs_ioctl_send()
5983 ret = -EFAULT; in btrfs_ioctl_send()
5988 ret = -EINVAL; in btrfs_ioctl_send()
5994 ret = -ENOMEM; in btrfs_ioctl_send()
6007 ret = -EBADF; in btrfs_ioctl_send()
6017 ret = -EPERM; in btrfs_ioctl_send()
6026 ret = -ENOMEM; in btrfs_ioctl_send()
6032 ret = -ENOMEM; in btrfs_ioctl_send()
6043 ret = -ENOMEM; in btrfs_ioctl_send()
6051 ret = -ENOMEM; in btrfs_ioctl_send()
6055 ret = copy_from_user(clone_sources_tmp, arg->clone_sources, in btrfs_ioctl_send()
6058 if (ret) { in btrfs_ioctl_send()
6059 ret = -EFAULT; in btrfs_ioctl_send()
6073 ret = PTR_ERR(clone_root); in btrfs_ioctl_send()
6081 ret = -EPERM; in btrfs_ioctl_send()
6105 ret = PTR_ERR(sctx->parent_root); in btrfs_ioctl_send()
6115 ret = -EPERM; in btrfs_ioctl_send()
6136 ret = ensure_commit_roots_uptodate(sctx); in btrfs_ioctl_send()
6137 if (ret) in btrfs_ioctl_send()
6141 ret = send_subvol(sctx); in btrfs_ioctl_send()
6143 if (ret < 0) in btrfs_ioctl_send()
6147 ret = begin_cmd(sctx, BTRFS_SEND_C_END); in btrfs_ioctl_send()
6148 if (ret < 0) in btrfs_ioctl_send()
6150 ret = send_cmd(sctx); in btrfs_ioctl_send()
6151 if (ret < 0) in btrfs_ioctl_send()
6156 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->pending_dir_moves)); in btrfs_ioctl_send()
6173 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->waiting_dir_moves)); in btrfs_ioctl_send()
6184 WARN_ON(sctx && !ret && !RB_EMPTY_ROOT(&sctx->orphan_dirs)); in btrfs_ioctl_send()
6224 return ret; in btrfs_ioctl_send()