Lines Matching refs:ino
75 u64 ino; member
231 u64 ino; member
239 u64 ino; member
250 u64 ino; member
265 u64 ino; member
275 static int is_waiting_for_move(struct send_ctx *sctx, u64 ino);
278 get_waiting_dir_move(struct send_ctx *sctx, u64 ino);
786 u64 ino, u64 *size, u64 *gen, u64 *mode, u64 *uid, in __get_inode_info() argument
793 key.objectid = ino; in __get_inode_info()
822 u64 ino, u64 *size, u64 *gen, in get_inode_info() argument
832 ret = __get_inode_info(root, path, ino, size, gen, mode, uid, gid, in get_inode_info()
1102 u64 ino, struct fs_path *path) in get_inode_path() argument
1114 key.objectid = ino; in get_inode_path()
1126 if (found_key.objectid != ino || in get_inode_path()
1193 static int __iterate_backrefs(u64 ino, u64 offset, u64 root, void *ctx_) in __iterate_backrefs() argument
1209 ino == bctx->cur_objectid && in __iterate_backrefs()
1218 ret = __get_inode_info(found->root, bctx->path, ino, &i_size, NULL, NULL, in __iterate_backrefs()
1238 if (ino >= bctx->cur_objectid) in __iterate_backrefs()
1241 if (ino > bctx->cur_objectid) in __iterate_backrefs()
1250 if (ino < found->ino) { in __iterate_backrefs()
1251 found->ino = ino; in __iterate_backrefs()
1253 } else if (found->ino == ino) { in __iterate_backrefs()
1275 u64 ino, u64 data_offset, in find_extent_clone() argument
1355 cur_clone_root->ino = (u64)-1; in find_extent_clone()
1362 backref_ctx->cur_objectid = ino; in find_extent_clone()
1395 ino, data_offset, disk_byte, found_key.objectid); in find_extent_clone()
1402 data_offset, ino, num_bytes, logical); in find_extent_clone()
1443 u64 ino, in read_symlink() argument
1459 key.objectid = ino; in read_symlink()
1476 ino, root->root_key.objectid); in read_symlink()
1503 u64 ino, u64 gen, in gen_unique_name() argument
1519 ino, gen, idx); in gen_unique_name()
1574 static int get_cur_inode_state(struct send_ctx *sctx, u64 ino, u64 gen) in get_cur_inode_state() argument
1582 ret = get_inode_info(sctx->send_root, ino, NULL, &left_gen, NULL, NULL, in get_cur_inode_state()
1591 ret = get_inode_info(sctx->parent_root, ino, NULL, &right_gen, in get_cur_inode_state()
1602 if (ino < sctx->send_progress) in get_cur_inode_state()
1607 if (ino < sctx->send_progress) in get_cur_inode_state()
1616 if (ino < sctx->send_progress) in get_cur_inode_state()
1625 if (ino < sctx->send_progress) in get_cur_inode_state()
1640 static int is_inode_existent(struct send_ctx *sctx, u64 ino, u64 gen) in is_inode_existent() argument
1644 ret = get_cur_inode_state(sctx, ino, gen); in is_inode_existent()
1703 static int get_first_ref(struct btrfs_root *root, u64 ino, in get_first_ref() argument
1717 key.objectid = ino; in get_first_ref()
1727 if (ret || found_key.objectid != ino || in get_first_ref()
1771 u64 ino, u64 dir, in is_first_ref() argument
1782 ret = get_first_ref(root, ino, &tmp_dir, NULL, tmp_name); in is_first_ref()
1881 u64 ino, u64 ino_gen, in did_overwrite_ref() argument
1912 if (ow_inode == ino && gen == ino_gen) { in did_overwrite_ref()
1932 static int did_overwrite_first_ref(struct send_ctx *sctx, u64 ino, u64 gen) in did_overwrite_first_ref() argument
1946 ret = get_first_ref(sctx->parent_root, ino, &dir, &dir_gen, name); in did_overwrite_first_ref()
1950 ret = did_overwrite_ref(sctx, dir, dir_gen, ino, gen, in did_overwrite_first_ref()
1971 (unsigned long)nce->ino); in name_cache_insert()
1980 ret = radix_tree_insert(&sctx->name_cache, nce->ino, nce_head); in name_cache_insert()
2000 (unsigned long)nce->ino); in name_cache_delete()
2004 nce->ino, sctx->name_cache_size); in name_cache_delete()
2015 radix_tree_delete(&sctx->name_cache, (unsigned long)nce->ino); in name_cache_delete()
2021 u64 ino, u64 gen) in name_cache_search() argument
2026 nce_head = radix_tree_lookup(&sctx->name_cache, (unsigned long)ino); in name_cache_search()
2031 if (cur->ino == ino && cur->gen == gen) in name_cache_search()
2086 u64 ino, u64 gen, in __get_cur_name_and_parent() argument
2100 nce = name_cache_search(sctx, ino, gen); in __get_cur_name_and_parent()
2102 if (ino < sctx->send_progress && nce->need_later_update) { in __get_cur_name_and_parent()
2123 ret = is_inode_existent(sctx, ino, gen); in __get_cur_name_and_parent()
2128 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2139 if (ino < sctx->send_progress) 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()
2152 ret = did_overwrite_ref(sctx, *parent_ino, *parent_gen, ino, gen, in __get_cur_name_and_parent()
2158 ret = gen_unique_name(sctx, ino, gen, dest); in __get_cur_name_and_parent()
2174 nce->ino = ino; in __get_cur_name_and_parent()
2182 if (ino < sctx->send_progress) in __get_cur_name_and_parent()
2221 static int get_cur_path(struct send_ctx *sctx, u64 ino, u64 gen, in get_cur_path() argument
2239 while (!stop && ino != BTRFS_FIRST_FREE_OBJECTID) { in get_cur_path()
2242 if (is_waiting_for_rm(sctx, ino)) { in get_cur_path()
2243 ret = gen_unique_name(sctx, ino, gen, name); in get_cur_path()
2250 if (is_waiting_for_move(sctx, ino)) { 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()
2268 ino = parent_inode; in get_cur_path()
2360 static int send_truncate(struct send_ctx *sctx, u64 ino, u64 gen, u64 size) in send_truncate() argument
2365 verbose_printk("btrfs: send_truncate %llu size=%llu\n", ino, size); in send_truncate()
2375 ret = get_cur_path(sctx, ino, gen, p); in send_truncate()
2389 static int send_chmod(struct send_ctx *sctx, u64 ino, u64 gen, u64 mode) in send_chmod() argument
2394 verbose_printk("btrfs: send_chmod %llu mode=%llu\n", ino, mode); in send_chmod()
2404 ret = get_cur_path(sctx, ino, gen, p); in send_chmod()
2418 static int send_chown(struct send_ctx *sctx, u64 ino, u64 gen, u64 uid, u64 gid) in send_chown() argument
2423 verbose_printk("btrfs: send_chown %llu uid=%llu, gid=%llu\n", ino, uid, gid); in send_chown()
2433 ret = get_cur_path(sctx, ino, gen, p); in send_chown()
2448 static int send_utimes(struct send_ctx *sctx, u64 ino, u64 gen) in send_utimes() argument
2458 verbose_printk("btrfs: send_utimes %llu\n", ino); in send_utimes()
2470 key.objectid = ino; in send_utimes()
2485 ret = get_cur_path(sctx, ino, gen, p); in send_utimes()
2508 static int send_create_inode(struct send_ctx *sctx, u64 ino) in send_create_inode() argument
2517 verbose_printk("btrfs: send_create_inode %llu\n", ino); in send_create_inode()
2523 if (ino != sctx->cur_ino) { in send_create_inode()
2524 ret = get_inode_info(sctx->send_root, ino, NULL, &gen, &mode, in send_create_inode()
2557 ret = gen_unique_name(sctx, ino, gen, p); in send_create_inode()
2562 TLV_PUT_U64(sctx, BTRFS_SEND_A_INO, ino); in send_create_inode()
2566 ret = read_symlink(sctx->send_root, ino, p); in send_create_inode()
2763 static int orphanize_inode(struct send_ctx *sctx, u64 ino, u64 gen, in orphanize_inode() argument
2773 ret = gen_unique_name(sctx, ino, gen, orphan); in orphanize_inode()
2794 odi->ino = dir_ino; in add_orphan_dir_info()
2800 if (dir_ino < entry->ino) { in add_orphan_dir_info()
2802 } else if (dir_ino > entry->ino) { in add_orphan_dir_info()
2823 if (dir_ino < entry->ino) in get_orphan_dir_info()
2825 else if (dir_ino > entry->ino) in get_orphan_dir_info()
2933 static int is_waiting_for_move(struct send_ctx *sctx, u64 ino) in is_waiting_for_move() argument
2935 struct waiting_dir_move *entry = get_waiting_dir_move(sctx, ino); in is_waiting_for_move()
2940 static int add_waiting_dir_move(struct send_ctx *sctx, u64 ino) in add_waiting_dir_move() argument
2949 dm->ino = ino; in add_waiting_dir_move()
2955 if (ino < entry->ino) { in add_waiting_dir_move()
2957 } else if (ino > entry->ino) { in add_waiting_dir_move()
2971 get_waiting_dir_move(struct send_ctx *sctx, u64 ino) in get_waiting_dir_move() argument
2978 if (ino < entry->ino) in get_waiting_dir_move()
2980 else if (ino > entry->ino) in get_waiting_dir_move()
2998 u64 ino, in add_pending_dir_move() argument
3016 pm->ino = ino; in add_pending_dir_move()
3047 ret = add_waiting_dir_move(sctx, pm->ino); in add_pending_dir_move()
3103 dm = get_waiting_dir_move(sctx, pm->ino); 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()
3129 ret = get_cur_path(sctx, pm->ino, pm->gen, to_path); in apply_dir_move()
3166 ret = send_utimes(sctx, pm->ino, pm->gen); in apply_dir_move()
3230 parent_ino = pm->ino; in apply_children_dir_moves()
3374 u64 ino = parent_ref->dir; in wait_for_parent_move() local
3393 while (ino > BTRFS_FIRST_FREE_OBJECTID) { in wait_for_parent_move()
3394 if (is_waiting_for_move(sctx, ino)) { in wait_for_parent_move()
3402 ret = get_first_ref(sctx->send_root, ino, &parent_ino_after, in wait_for_parent_move()
3406 ret = get_first_ref(sctx->parent_root, ino, &parent_ino_before, in wait_for_parent_move()
3417 if (ino > sctx->cur_ino && in wait_for_parent_move()
3423 ino = parent_ino_after; in wait_for_parent_move()
3434 ino, in wait_for_parent_move()
4494 clone_root->root->objectid, clone_root->ino, in send_clone()
4514 ret = get_inode_info(sctx->send_root, clone_root->ino, NULL, 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()