Lines Matching refs:path
110 struct btrfs_path *path, u64 objectid);
114 struct btrfs_path *path,
396 struct btrfs_path *path, in overwrite_item() argument
423 ret = btrfs_search_slot(NULL, root, key, path, 0, 0); in overwrite_item()
427 dst_eb = path->nodes[0]; in overwrite_item()
428 dst_slot = path->slots[0]; in overwrite_item()
438 btrfs_release_path(path); in overwrite_item()
443 btrfs_release_path(path); in overwrite_item()
459 btrfs_release_path(path); in overwrite_item()
509 btrfs_release_path(path); in overwrite_item()
511 path->skip_release_on_error = 1; in overwrite_item()
512 ret = btrfs_insert_empty_item(trans, root, path, in overwrite_item()
514 path->skip_release_on_error = 0; in overwrite_item()
516 dst_eb = path->nodes[0]; in overwrite_item()
517 dst_slot = path->slots[0]; in overwrite_item()
524 btrfs_truncate_item(trans, path, item_size, 1); in overwrite_item()
526 btrfs_extend_item(trans, path, item_size - found_size); in overwrite_item()
590 btrfs_release_path(path); in overwrite_item()
623 struct btrfs_path *path, in replay_one_extent() argument
673 ret = btrfs_lookup_file_extent(trans, root, path, btrfs_ino(inode), start, 0); in replay_one_extent()
681 ptr = btrfs_item_ptr_offset(path->nodes[0], path->slots[0]); in replay_one_extent()
682 read_extent_buffer(path->nodes[0], &existing, ptr, sizeof(existing)); in replay_one_extent()
690 btrfs_release_path(path); in replay_one_extent()
694 btrfs_release_path(path); in replay_one_extent()
714 ret = btrfs_insert_empty_item(trans, root, path, key, in replay_one_extent()
718 dest_offset = btrfs_item_ptr_offset(path->nodes[0], in replay_one_extent()
719 path->slots[0]); in replay_one_extent()
720 copy_extent_buffer(path->nodes[0], eb, dest_offset, in replay_one_extent()
779 btrfs_release_path(path); in replay_one_extent()
869 btrfs_release_path(path); in replay_one_extent()
873 ret = overwrite_item(trans, root, path, eb, slot, key); in replay_one_extent()
918 struct btrfs_path *path, in drop_one_dir_item() argument
929 leaf = path->nodes[0]; in drop_one_dir_item()
936 btrfs_release_path(path); in drop_one_dir_item()
945 ret = link_to_fixup_dir(trans, root, path, location.objectid); in drop_one_dir_item()
965 struct btrfs_path *path, in inode_in_dir() argument
973 di = btrfs_lookup_dir_index_item(NULL, root, path, dirid, in inode_in_dir()
979 btrfs_dir_item_key_to_cpu(path->nodes[0], di, &location); in inode_in_dir()
986 btrfs_release_path(path); in inode_in_dir()
987 di = btrfs_lookup_dir_item(NULL, root, path, dirid, name, 0); in inode_in_dir()
992 btrfs_dir_item_key_to_cpu(path->nodes[0], di, &location); in inode_in_dir()
997 btrfs_release_path(path); in inode_in_dir()
1016 struct btrfs_path *path; in backref_in_log() local
1019 path = btrfs_alloc_path(); in backref_in_log()
1020 if (!path) in backref_in_log()
1023 ret = btrfs_search_slot(NULL, log, key, path, 0, 0); in backref_in_log()
1032 ret = !!btrfs_find_name_in_ext_backref(path->nodes[0], in backref_in_log()
1033 path->slots[0], in backref_in_log()
1036 ret = !!btrfs_find_name_in_backref(path->nodes[0], in backref_in_log()
1037 path->slots[0], name); in backref_in_log()
1039 btrfs_free_path(path); in backref_in_log()
1044 struct btrfs_path *path, in unlink_refs_not_in_log() argument
1051 struct extent_buffer *leaf = path->nodes[0]; in unlink_refs_not_in_log()
1060 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in unlink_refs_not_in_log()
1061 ptr_end = ptr + btrfs_item_size(leaf, path->slots[0]); in unlink_refs_not_in_log()
1084 btrfs_release_path(path); in unlink_refs_not_in_log()
1097 struct btrfs_path *path, in unlink_extrefs_not_in_log() argument
1105 struct extent_buffer *leaf = path->nodes[0]; in unlink_extrefs_not_in_log()
1106 const unsigned long base = btrfs_item_ptr_offset(leaf, path->slots[0]); in unlink_extrefs_not_in_log()
1107 const u32 item_size = btrfs_item_size(leaf, path->slots[0]); in unlink_extrefs_not_in_log()
1149 btrfs_release_path(path); in unlink_extrefs_not_in_log()
1165 struct btrfs_path *path, in __add_inode_ref() argument
1182 ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0); in __add_inode_ref()
1193 ret = unlink_refs_not_in_log(trans, path, log_root, &search_key, in __add_inode_ref()
1200 btrfs_release_path(path); in __add_inode_ref()
1203 extref = btrfs_lookup_inode_extref(root, path, name, inode_objectid, parent_objectid); in __add_inode_ref()
1207 ret = unlink_extrefs_not_in_log(trans, path, root, log_root, in __add_inode_ref()
1215 btrfs_release_path(path); in __add_inode_ref()
1218 di = btrfs_lookup_dir_index_item(trans, root, path, btrfs_ino(dir), in __add_inode_ref()
1223 ret = drop_one_dir_item(trans, path, dir, di); in __add_inode_ref()
1227 btrfs_release_path(path); in __add_inode_ref()
1230 di = btrfs_lookup_dir_item(trans, root, path, btrfs_ino(dir), name, 0); in __add_inode_ref()
1234 ret = drop_one_dir_item(trans, path, dir, di); in __add_inode_ref()
1238 btrfs_release_path(path); in __add_inode_ref()
1293 struct btrfs_path *path, in unlink_old_inode_refs() argument
1305 btrfs_release_path(path); in unlink_old_inode_refs()
1306 ret = btrfs_search_slot(NULL, root, key, path, 0, 0); in unlink_old_inode_refs()
1314 eb = path->nodes[0]; in unlink_old_inode_refs()
1315 ref_ptr = btrfs_item_ptr_offset(eb, path->slots[0]); in unlink_old_inode_refs()
1316 ref_end = ref_ptr + btrfs_item_size(eb, path->slots[0]); in unlink_old_inode_refs()
1340 btrfs_release_path(path); in unlink_old_inode_refs()
1364 btrfs_release_path(path); in unlink_old_inode_refs()
1377 struct btrfs_path *path, in add_inode_ref() argument
1470 ret = inode_in_dir(root, path, btrfs_ino(dir), btrfs_ino(inode), in add_inode_ref()
1482 ret = __add_inode_ref(trans, root, path, log, dir, inode, in add_inode_ref()
1520 ret = unlink_old_inode_refs(trans, root, path, inode, eb, slot, key); in add_inode_ref()
1525 ret = overwrite_item(trans, root, path, eb, slot, key); in add_inode_ref()
1527 btrfs_release_path(path); in add_inode_ref()
1536 static int count_inode_extrefs(struct btrfs_inode *inode, struct btrfs_path *path) in count_inode_extrefs() argument
1551 path, &extref, &offset); in count_inode_extrefs()
1555 leaf = path->nodes[0]; in count_inode_extrefs()
1556 item_size = btrfs_item_size(leaf, path->slots[0]); in count_inode_extrefs()
1557 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in count_inode_extrefs()
1570 btrfs_release_path(path); in count_inode_extrefs()
1572 btrfs_release_path(path); in count_inode_extrefs()
1579 static int count_inode_refs(struct btrfs_inode *inode, struct btrfs_path *path) in count_inode_refs() argument
1594 ret = btrfs_search_slot(NULL, inode->root, &key, path, 0, 0); in count_inode_refs()
1598 if (path->slots[0] == 0) in count_inode_refs()
1600 path->slots[0]--; in count_inode_refs()
1603 btrfs_item_key_to_cpu(path->nodes[0], &key, in count_inode_refs()
1604 path->slots[0]); in count_inode_refs()
1608 ptr = btrfs_item_ptr_offset(path->nodes[0], path->slots[0]); in count_inode_refs()
1609 ptr_end = ptr + btrfs_item_size(path->nodes[0], in count_inode_refs()
1610 path->slots[0]); in count_inode_refs()
1615 name_len = btrfs_inode_ref_name_len(path->nodes[0], in count_inode_refs()
1623 if (path->slots[0] > 0) { in count_inode_refs()
1624 path->slots[0]--; in count_inode_refs()
1628 btrfs_release_path(path); in count_inode_refs()
1630 btrfs_release_path(path); in count_inode_refs()
1649 struct btrfs_path *path; in fixup_inode_link_count() local
1654 path = btrfs_alloc_path(); in fixup_inode_link_count()
1655 if (!path) in fixup_inode_link_count()
1658 ret = count_inode_refs(inode, path); in fixup_inode_link_count()
1664 ret = count_inode_extrefs(inode, path); in fixup_inode_link_count()
1683 ret = replay_dir_deletes(trans, root, NULL, path, ino, true); in fixup_inode_link_count()
1693 btrfs_free_path(path); in fixup_inode_link_count()
1699 struct btrfs_path *path) in fixup_inode_link_counts() argument
1710 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in fixup_inode_link_counts()
1716 if (path->slots[0] == 0) in fixup_inode_link_counts()
1718 path->slots[0]--; in fixup_inode_link_counts()
1721 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in fixup_inode_link_counts()
1726 ret = btrfs_del_item(trans, root, path); in fixup_inode_link_counts()
1730 btrfs_release_path(path); in fixup_inode_link_counts()
1749 btrfs_release_path(path); in fixup_inode_link_counts()
1761 struct btrfs_path *path, in link_to_fixup_dir() argument
1778 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in link_to_fixup_dir()
1780 btrfs_release_path(path); in link_to_fixup_dir()
1831 struct btrfs_path *path, in delete_conflicting_dir_entry() argument
1839 btrfs_dir_item_key_to_cpu(path->nodes[0], dst_di, &found_key); in delete_conflicting_dir_entry()
1844 btrfs_dir_flags(path->nodes[0], dst_di) == log_flags) in delete_conflicting_dir_entry()
1854 return drop_one_dir_item(trans, path, dir, dst_di); in delete_conflicting_dir_entry()
1875 struct btrfs_path *path, in replay_one_name() argument
1904 ret = btrfs_lookup_inode(trans, root, path, &log_key, 0); in replay_one_name()
1905 btrfs_release_path(path); in replay_one_name()
1911 dir_dst_di = btrfs_lookup_dir_item(trans, root, path, key->objectid, in replay_one_name()
1917 ret = delete_conflicting_dir_entry(trans, dir, path, dir_dst_di, in replay_one_name()
1924 btrfs_release_path(path); in replay_one_name()
1926 index_dst_di = btrfs_lookup_dir_index_item(trans, root, path, in replay_one_name()
1933 ret = delete_conflicting_dir_entry(trans, dir, path, index_dst_di, in replay_one_name()
1940 btrfs_release_path(path); in replay_one_name()
1977 btrfs_release_path(path); in replay_one_name()
2002 struct btrfs_path *path, in replay_one_dir_item() argument
2013 ret = replay_one_name(trans, root, path, eb, di, key); in replay_one_dir_item()
2071 struct btrfs_path *path, in find_dir_range() argument
2088 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in find_dir_range()
2092 if (path->slots[0] == 0) in find_dir_range()
2094 path->slots[0]--; in find_dir_range()
2097 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in find_dir_range()
2103 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in find_dir_range()
2105 found_end = btrfs_dir_log_end(path->nodes[0], item); in find_dir_range()
2116 nritems = btrfs_header_nritems(path->nodes[0]); in find_dir_range()
2117 path->slots[0]++; in find_dir_range()
2118 if (path->slots[0] >= nritems) { in find_dir_range()
2119 ret = btrfs_next_leaf(root, path); in find_dir_range()
2124 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in find_dir_range()
2130 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in find_dir_range()
2132 found_end = btrfs_dir_log_end(path->nodes[0], item); in find_dir_range()
2137 btrfs_release_path(path); in find_dir_range()
2148 struct btrfs_path *path, in check_item_in_log() argument
2170 eb = path->nodes[0]; in check_item_in_log()
2171 slot = path->slots[0]; in check_item_in_log()
2194 btrfs_release_path(path); in check_item_in_log()
2203 ret = link_to_fixup_dir(trans, root, path, location.objectid); in check_item_in_log()
2215 btrfs_release_path(path); in check_item_in_log()
2226 struct btrfs_path *path, in replay_xattr_deletes() argument
2243 ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0); in replay_xattr_deletes()
2247 nritems = btrfs_header_nritems(path->nodes[0]); in replay_xattr_deletes()
2248 for (i = path->slots[0]; i < nritems; i++) { in replay_xattr_deletes()
2255 btrfs_item_key_to_cpu(path->nodes[0], &key, i); in replay_xattr_deletes()
2261 di = btrfs_item_ptr(path->nodes[0], i, struct btrfs_dir_item); in replay_xattr_deletes()
2262 total_size = btrfs_item_size(path->nodes[0], i); in replay_xattr_deletes()
2265 u16 name_len = btrfs_dir_name_len(path->nodes[0], di); in replay_xattr_deletes()
2266 u16 data_len = btrfs_dir_data_len(path->nodes[0], di); in replay_xattr_deletes()
2275 read_extent_buffer(path->nodes[0], name, in replay_xattr_deletes()
2283 btrfs_release_path(path); in replay_xattr_deletes()
2284 di = btrfs_lookup_xattr(trans, root, path, ino, in replay_xattr_deletes()
2293 path, di); in replay_xattr_deletes()
2296 btrfs_release_path(path); in replay_xattr_deletes()
2309 ret = btrfs_next_leaf(root, path); in replay_xattr_deletes()
2316 btrfs_release_path(path); in replay_xattr_deletes()
2334 struct btrfs_path *path, in replay_dir_deletes() argument
2370 ret = find_dir_range(log, path, dirid, in replay_dir_deletes()
2381 ret = btrfs_search_slot(NULL, root, &dir_key, path, in replay_dir_deletes()
2386 nritems = btrfs_header_nritems(path->nodes[0]); in replay_dir_deletes()
2387 if (path->slots[0] >= nritems) { in replay_dir_deletes()
2388 ret = btrfs_next_leaf(root, path); in replay_dir_deletes()
2394 btrfs_item_key_to_cpu(path->nodes[0], &found_key, in replay_dir_deletes()
2395 path->slots[0]); in replay_dir_deletes()
2405 ret = check_item_in_log(trans, log, path, in replay_dir_deletes()
2414 btrfs_release_path(path); in replay_dir_deletes()
2421 btrfs_release_path(path); in replay_dir_deletes()
2446 struct btrfs_path *path; in replay_one_buffer() local
2461 path = btrfs_alloc_path(); in replay_one_buffer()
2462 if (!path) in replay_one_buffer()
2505 ret = replay_xattr_deletes(wc->trans, root, log, path, key.objectid); in replay_one_buffer()
2510 ret = replay_dir_deletes(wc->trans, root, log, path, in replay_one_buffer()
2515 ret = overwrite_item(wc->trans, root, path, in replay_one_buffer()
2557 path, key.objectid); in replay_one_buffer()
2567 ret = replay_one_dir_item(wc->trans, root, path, in replay_one_buffer()
2578 ret = overwrite_item(wc->trans, root, path, in replay_one_buffer()
2584 ret = add_inode_ref(wc->trans, root, log, path, in replay_one_buffer()
2589 ret = replay_one_extent(wc->trans, root, path, in replay_one_buffer()
2601 btrfs_free_path(path); in replay_one_buffer()
2646 struct btrfs_path *path, int *level, in walk_down_log_tree() argument
2659 cur = path->nodes[*level]; in walk_down_log_tree()
2663 if (path->slots[*level] >= in walk_down_log_tree()
2667 bytenr = btrfs_node_blockptr(cur, path->slots[*level]); in walk_down_log_tree()
2668 ptr_gen = btrfs_node_ptr_generation(cur, path->slots[*level]); in walk_down_log_tree()
2672 btrfs_node_key_to_cpu(cur, &check.first_key, path->slots[*level]); in walk_down_log_tree()
2688 path->slots[*level]++; in walk_down_log_tree()
2711 if (path->nodes[*level-1]) in walk_down_log_tree()
2712 free_extent_buffer(path->nodes[*level-1]); in walk_down_log_tree()
2713 path->nodes[*level-1] = next; in walk_down_log_tree()
2715 path->slots[*level] = 0; in walk_down_log_tree()
2718 path->slots[*level] = btrfs_header_nritems(path->nodes[*level]); in walk_down_log_tree()
2726 struct btrfs_path *path, int *level, in walk_up_log_tree() argument
2733 for (i = *level; i < BTRFS_MAX_LEVEL - 1 && path->nodes[i]; i++) { in walk_up_log_tree()
2734 slot = path->slots[i]; in walk_up_log_tree()
2735 if (slot + 1 < btrfs_header_nritems(path->nodes[i])) { in walk_up_log_tree()
2736 path->slots[i]++; in walk_up_log_tree()
2741 ret = wc->process_func(root, path->nodes[*level], wc, in walk_up_log_tree()
2742 btrfs_header_generation(path->nodes[*level]), in walk_up_log_tree()
2748 ret = clean_log_buffer(trans, path->nodes[*level]); in walk_up_log_tree()
2752 free_extent_buffer(path->nodes[*level]); in walk_up_log_tree()
2753 path->nodes[*level] = NULL; in walk_up_log_tree()
2771 struct btrfs_path *path; in walk_log_tree() local
2774 path = btrfs_alloc_path(); in walk_log_tree()
2775 if (!path) in walk_log_tree()
2780 path->nodes[level] = log->node; in walk_log_tree()
2782 path->slots[level] = 0; in walk_log_tree()
2785 wret = walk_down_log_tree(trans, log, path, &level, wc); in walk_log_tree()
2793 wret = walk_up_log_tree(trans, log, path, &level, wc); in walk_log_tree()
2803 if (path->nodes[orig_level]) { in walk_log_tree()
2804 ret = wc->process_func(log, path->nodes[orig_level], wc, in walk_log_tree()
2805 btrfs_header_generation(path->nodes[orig_level]), in walk_log_tree()
2810 ret = clean_log_buffer(trans, path->nodes[orig_level]); in walk_log_tree()
2814 btrfs_free_path(path); in walk_log_tree()
3356 struct btrfs_path *path = path_in; in inode_logged() local
3410 if (!path) { in inode_logged()
3411 path = btrfs_alloc_path(); in inode_logged()
3412 if (!path) in inode_logged()
3416 ret = btrfs_search_slot(NULL, inode->root->log_root, &key, path, 0, 0); in inode_logged()
3419 btrfs_release_path(path); in inode_logged()
3421 btrfs_free_path(path); in inode_logged()
3470 struct btrfs_path *path, in del_logged_dentry() argument
3481 di = btrfs_lookup_dir_index_item(trans, log, path, dir_ino, in del_logged_dentry()
3493 return btrfs_del_item(trans, log, path); in del_logged_dentry()
3522 struct btrfs_path *path; in btrfs_del_dir_entries_in_log() local
3533 path = btrfs_alloc_path(); in btrfs_del_dir_entries_in_log()
3534 if (!path) { in btrfs_del_dir_entries_in_log()
3546 ret = del_logged_dentry(trans, root->log_root, path, btrfs_ino(dir), in btrfs_del_dir_entries_in_log()
3553 btrfs_free_path(path); in btrfs_del_dir_entries_in_log()
3594 struct btrfs_path *path, in insert_dir_log_key() argument
3605 ret = btrfs_insert_empty_item(trans, log, path, &key, sizeof(*item)); in insert_dir_log_key()
3616 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in insert_dir_log_key()
3619 const u64 curr_end = btrfs_dir_log_end(path->nodes[0], item); in insert_dir_log_key()
3629 btrfs_set_dir_log_end(path->nodes[0], item, last_offset); in insert_dir_log_key()
3630 btrfs_release_path(path); in insert_dir_log_key()
3726 static int clone_leaf(struct btrfs_path *path, struct btrfs_log_ctx *ctx) in clone_leaf() argument
3728 const int slot = path->slots[0]; in clone_leaf()
3731 copy_extent_buffer_full(ctx->scratch_eb, path->nodes[0]); in clone_leaf()
3733 ctx->scratch_eb = btrfs_clone_extent_buffer(path->nodes[0]); in clone_leaf()
3738 btrfs_release_path(path); in clone_leaf()
3739 path->nodes[0] = ctx->scratch_eb; in clone_leaf()
3740 path->slots[0] = slot; in clone_leaf()
3752 struct btrfs_path *path, in process_dir_items_leaf() argument
3759 const int nritems = btrfs_header_nritems(path->nodes[0]); in process_dir_items_leaf()
3771 ret = clone_leaf(path, ctx); in process_dir_items_leaf()
3775 src = path->nodes[0]; in process_dir_items_leaf()
3777 for (int i = path->slots[0]; i < nritems; i++) { in process_dir_items_leaf()
3868 struct btrfs_path *path, in log_dir_items() argument
3885 ret = btrfs_search_forward(root, &min_key, path, trans->transid); in log_dir_items()
3896 btrfs_release_path(path); in log_dir_items()
3897 ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); in log_dir_items()
3899 btrfs_release_path(path); in log_dir_items()
3902 ret = btrfs_previous_item(root, path, ino, BTRFS_DIR_INDEX_KEY); in log_dir_items()
3912 btrfs_item_key_to_cpu(path->nodes[0], &tmp, in log_dir_items()
3913 path->slots[0]); in log_dir_items()
3924 ret = btrfs_previous_item(root, path, ino, BTRFS_DIR_INDEX_KEY); in log_dir_items()
3928 btrfs_item_key_to_cpu(path->nodes[0], &tmp, path->slots[0]); in log_dir_items()
3943 btrfs_release_path(path); in log_dir_items()
3960 ret = btrfs_search_slot(NULL, root, &min_key, path, 0, 0); in log_dir_items()
3962 ret = btrfs_next_item(root, path); in log_dir_items()
3977 ret = process_dir_items_leaf(trans, inode, path, dst_path, ctx, in log_dir_items()
3984 path->slots[0] = btrfs_header_nritems(path->nodes[0]); in log_dir_items()
3990 ret = btrfs_next_leaf(root, path); in log_dir_items()
3998 btrfs_item_key_to_cpu(path->nodes[0], &min_key, path->slots[0]); in log_dir_items()
4003 if (btrfs_header_generation(path->nodes[0]) != trans->transid) { in log_dir_items()
4017 btrfs_release_path(path); in log_dir_items()
4023 btrfs_release_path(path); in log_dir_items()
4038 ret = insert_dir_log_key(trans, log, path, ino, in log_dir_items()
4055 struct btrfs_path *path, in update_last_dir_index_offset() argument
4076 ret = btrfs_search_slot(NULL, inode->root->log_root, &key, path, 0, 0); in update_last_dir_index_offset()
4091 if (path->slots[0] == 0) in update_last_dir_index_offset()
4101 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0] - 1); in update_last_dir_index_offset()
4106 btrfs_release_path(path); in update_last_dir_index_offset()
4125 struct btrfs_path *path, in log_directory_changes() argument
4133 ret = update_last_dir_index_offset(inode, path, ctx); in log_directory_changes()
4141 ret = log_dir_items(trans, inode, path, dst_path, in log_directory_changes()
4161 struct btrfs_path *path, in drop_inode_items() argument
4175 ret = btrfs_search_slot(trans, log, &key, path, -1, 1); in drop_inode_items()
4179 if (path->slots[0] == 0) in drop_inode_items()
4181 path->slots[0]--; in drop_inode_items()
4184 btrfs_item_key_to_cpu(path->nodes[0], &found_key, in drop_inode_items()
4185 path->slots[0]); in drop_inode_items()
4192 ret = btrfs_bin_search(path->nodes[0], 0, &found_key, &start_slot); in drop_inode_items()
4196 ret = btrfs_del_items(trans, log, path, start_slot, in drop_inode_items()
4197 path->slots[0] - start_slot + 1); in drop_inode_items()
4204 btrfs_release_path(path); in drop_inode_items()
4206 btrfs_release_path(path); in drop_inode_items()
4284 struct btrfs_root *log, struct btrfs_path *path, in log_inode_item() argument
4303 ret = btrfs_search_slot(trans, log, &key, path, 0, 1); in log_inode_item()
4317 ret = btrfs_insert_empty_item(trans, log, path, &key, in log_inode_item()
4323 inode_item = btrfs_item_ptr(path->nodes[0], path->slots[0], in log_inode_item()
4325 fill_inode_item(trans, path->nodes[0], inode_item, &inode->vfs_inode, in log_inode_item()
4327 btrfs_release_path(path); in log_inode_item()
4736 struct btrfs_path *path, in log_one_extent() argument
4785 drop_args.path = path; in log_one_extent()
4800 ret = btrfs_insert_empty_item(trans, log, path, &key, in log_one_extent()
4805 leaf = path->nodes[0]; in log_one_extent()
4807 btrfs_item_ptr_offset(leaf, path->slots[0]), in log_one_extent()
4810 btrfs_release_path(path); in log_one_extent()
4825 struct btrfs_path *path, in btrfs_log_prealloc_extents() argument
4847 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_log_prealloc_extents()
4859 ret = btrfs_previous_item(root, path, ino, BTRFS_EXTENT_DATA_KEY); in btrfs_log_prealloc_extents()
4866 leaf = path->nodes[0]; in btrfs_log_prealloc_extents()
4867 slot = path->slots[0]; in btrfs_log_prealloc_extents()
4886 leaf = path->nodes[0]; in btrfs_log_prealloc_extents()
4887 slot = path->slots[0]; in btrfs_log_prealloc_extents()
4891 ret = copy_items(trans, inode, dst_path, path, in btrfs_log_prealloc_extents()
4897 ret = btrfs_next_leaf(root, path); in btrfs_log_prealloc_extents()
4913 path->slots[0]++; in btrfs_log_prealloc_extents()
4932 truncate_offset = btrfs_file_extent_end(path); in btrfs_log_prealloc_extents()
4936 path->slots[0]++; in btrfs_log_prealloc_extents()
4946 ret = copy_items(trans, inode, dst_path, path, in btrfs_log_prealloc_extents()
4949 btrfs_release_path(path); in btrfs_log_prealloc_extents()
4956 struct btrfs_path *path, in btrfs_log_changed_extents() argument
5017 ret = log_one_extent(trans, inode, em, path, ctx); in btrfs_log_changed_extents()
5026 ret = btrfs_log_prealloc_extents(trans, inode, path, ctx); in btrfs_log_changed_extents()
5056 struct btrfs_path *path, u64 *size_ret) in logged_inode_size() argument
5065 ret = btrfs_search_slot(NULL, log, &key, path, 0, 0); in logged_inode_size()
5073 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in logged_inode_size()
5075 *size_ret = btrfs_inode_size(path->nodes[0], item); in logged_inode_size()
5091 btrfs_release_path(path); in logged_inode_size()
5106 struct btrfs_path *path, in btrfs_log_all_xattrs() argument
5125 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_log_all_xattrs()
5130 int slot = path->slots[0]; in btrfs_log_all_xattrs()
5131 struct extent_buffer *leaf = path->nodes[0]; in btrfs_log_all_xattrs()
5136 ret = copy_items(trans, inode, dst_path, path, in btrfs_log_all_xattrs()
5142 ret = btrfs_next_leaf(root, path); in btrfs_log_all_xattrs()
5157 path->slots[0]++; in btrfs_log_all_xattrs()
5162 ret = copy_items(trans, inode, dst_path, path, in btrfs_log_all_xattrs()
5185 struct btrfs_path *path) in btrfs_log_holes() argument
5202 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_log_holes()
5207 struct extent_buffer *leaf = path->nodes[0]; in btrfs_log_holes()
5209 if (path->slots[0] >= btrfs_header_nritems(path->nodes[0])) { in btrfs_log_holes()
5210 ret = btrfs_next_leaf(root, path); in btrfs_log_holes()
5217 leaf = path->nodes[0]; in btrfs_log_holes()
5220 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_log_holes()
5233 btrfs_release_path(path); in btrfs_log_holes()
5247 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_log_holes()
5252 leaf = path->nodes[0]; in btrfs_log_holes()
5255 prev_extent_end = btrfs_file_extent_end(path); in btrfs_log_holes()
5256 path->slots[0]++; in btrfs_log_holes()
5263 btrfs_release_path(path); in btrfs_log_holes()
5494 struct btrfs_path *path; in log_new_dir_dentries() local
5509 path = btrfs_alloc_path(); in log_new_dir_dentries()
5510 if (!path) in log_new_dir_dentries()
5528 btrfs_for_each_slot(root->log_root, &key, &found_key, path, iter_ret) { in log_new_dir_dentries()
5529 struct extent_buffer *leaf = path->nodes[0]; in log_new_dir_dentries()
5544 di = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_dir_item); in log_new_dir_dentries()
5552 btrfs_release_path(path); in log_new_dir_dentries()
5583 btrfs_release_path(path); in log_new_dir_dentries()
5619 btrfs_free_path(path); in log_new_dir_dentries()
5651 struct btrfs_path *path) in conflicting_inode_is_dir() argument
5660 path->search_commit_root = 1; in conflicting_inode_is_dir()
5661 path->skip_locking = 1; in conflicting_inode_is_dir()
5663 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in conflicting_inode_is_dir()
5674 item = btrfs_item_ptr(path->nodes[0], path->slots[0], in conflicting_inode_is_dir()
5676 if (S_ISDIR(btrfs_inode_mode(path->nodes[0], item))) in conflicting_inode_is_dir()
5680 btrfs_release_path(path); in conflicting_inode_is_dir()
5681 path->search_commit_root = 0; in conflicting_inode_is_dir()
5682 path->skip_locking = 0; in conflicting_inode_is_dir()
5689 struct btrfs_path *path, in add_conflicting_inode() argument
5733 ret = conflicting_inode_is_dir(root, ino, path); in add_conflicting_inode()
5908 struct btrfs_path *path, in copy_inode_items_to_log() argument
5922 ret = btrfs_search_forward(root, min_key, path, trans->transid); in copy_inode_items_to_log()
5954 ret = btrfs_check_ref_name_override(path->nodes[0], in copy_inode_items_to_log()
5955 path->slots[0], min_key, inode, in copy_inode_items_to_log()
5965 ins_start_slot = path->slots[0]; in copy_inode_items_to_log()
5967 ret = copy_items(trans, inode, dst_path, path, in copy_inode_items_to_log()
5974 btrfs_release_path(path); in copy_inode_items_to_log()
5975 ret = add_conflicting_inode(trans, root, path, in copy_inode_items_to_log()
5986 ret = copy_items(trans, inode, dst_path, path, in copy_inode_items_to_log()
5995 if (ins_nr && ins_start_slot + ins_nr == path->slots[0]) { in copy_inode_items_to_log()
5999 ins_start_slot = path->slots[0]; in copy_inode_items_to_log()
6004 ret = copy_items(trans, inode, dst_path, path, ins_start_slot, in copy_inode_items_to_log()
6009 ins_start_slot = path->slots[0]; in copy_inode_items_to_log()
6011 path->slots[0]++; in copy_inode_items_to_log()
6012 if (path->slots[0] < btrfs_header_nritems(path->nodes[0])) { in copy_inode_items_to_log()
6013 btrfs_item_key_to_cpu(path->nodes[0], min_key, in copy_inode_items_to_log()
6014 path->slots[0]); in copy_inode_items_to_log()
6018 ret = copy_items(trans, inode, dst_path, path, in copy_inode_items_to_log()
6025 btrfs_release_path(path); in copy_inode_items_to_log()
6044 ret = copy_items(trans, inode, dst_path, path, ins_start_slot, in copy_inode_items_to_log()
6055 btrfs_release_path(path); in copy_inode_items_to_log()
6064 struct btrfs_path *path, in insert_delayed_items_batch() argument
6071 ret = btrfs_insert_empty_items(trans, log, path, batch); in insert_delayed_items_batch()
6078 data_ptr = btrfs_item_ptr(path->nodes[0], path->slots[0], char); in insert_delayed_items_batch()
6079 write_extent_buffer(path->nodes[0], &curr->data, in insert_delayed_items_batch()
6082 path->slots[0]++; in insert_delayed_items_batch()
6085 btrfs_release_path(path); in insert_delayed_items_batch()
6092 struct btrfs_path *path, in log_delayed_insertion_items() argument
6151 ret = insert_delayed_items_batch(trans, log, path, in log_delayed_insertion_items()
6174 ret = insert_delayed_items_batch(trans, log, path, &batch, first); in log_delayed_insertion_items()
6187 struct btrfs_path *path, in log_delayed_deletions_full() argument
6219 ret = insert_dir_log_key(trans, inode->root->log_root, path, in log_delayed_deletions_full()
6231 struct btrfs_path *path, in batch_delete_dir_index_items() argument
6237 struct extent_buffer *leaf = path->nodes[0]; in batch_delete_dir_index_items()
6239 int slot = path->slots[0] + 1; in batch_delete_dir_index_items()
6259 return btrfs_del_items(trans, inode->root->log_root, path, in batch_delete_dir_index_items()
6260 path->slots[0], slot - path->slots[0]); in batch_delete_dir_index_items()
6265 struct btrfs_path *path, in log_delayed_deletions_incremental() argument
6288 ret = btrfs_search_slot(trans, log, &key, path, -1, 1); in log_delayed_deletions_incremental()
6292 ret = batch_delete_dir_index_items(trans, inode, path, in log_delayed_deletions_incremental()
6300 btrfs_release_path(path); in log_delayed_deletions_incremental()
6321 ret = insert_dir_log_key(trans, log, path, key.objectid, in log_delayed_deletions_incremental()
6337 struct btrfs_path *path, in log_delayed_deletion_items() argument
6351 return log_delayed_deletions_incremental(trans, inode, path, in log_delayed_deletion_items()
6354 return log_delayed_deletions_full(trans, inode, path, delayed_del_list, in log_delayed_deletion_items()
6444 struct btrfs_path *path; in btrfs_log_inode() local
6461 path = btrfs_alloc_path(); in btrfs_log_inode()
6462 if (!path) in btrfs_log_inode()
6466 btrfs_free_path(path); in btrfs_log_inode()
6545 ret = inode_logged(trans, inode, path); in btrfs_log_inode()
6570 ret = drop_inode_items(trans, log, path, inode, in btrfs_log_inode()
6587 ret = logged_inode_size(log, inode, path, &logged_isize); in btrfs_log_inode()
6596 ret = drop_inode_items(trans, log, path, in btrfs_log_inode()
6614 ret = drop_inode_items(trans, log, path, inode, in btrfs_log_inode()
6651 path, dst_path, logged_isize, in btrfs_log_inode()
6657 btrfs_release_path(path); in btrfs_log_inode()
6659 ret = btrfs_log_all_xattrs(trans, inode, path, dst_path, ctx); in btrfs_log_inode()
6664 btrfs_release_path(path); in btrfs_log_inode()
6666 ret = btrfs_log_holes(trans, inode, path); in btrfs_log_inode()
6671 btrfs_release_path(path); in btrfs_log_inode()
6686 ret = btrfs_log_all_xattrs(trans, inode, path, dst_path, ctx); in btrfs_log_inode()
6689 btrfs_release_path(path); in btrfs_log_inode()
6706 ret = log_directory_changes(trans, inode, path, dst_path, ctx); in btrfs_log_inode()
6709 ret = log_delayed_insertion_items(trans, inode, path, in btrfs_log_inode()
6713 ret = log_delayed_deletion_items(trans, inode, path, in btrfs_log_inode()
6766 btrfs_free_path(path); in btrfs_log_inode()
6791 struct btrfs_path *path; in btrfs_log_all_parents() local
6796 path = btrfs_alloc_path(); in btrfs_log_all_parents()
6797 if (!path) in btrfs_log_all_parents()
6799 path->skip_locking = 1; in btrfs_log_all_parents()
6800 path->search_commit_root = 1; in btrfs_log_all_parents()
6805 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_log_all_parents()
6810 struct extent_buffer *leaf = path->nodes[0]; in btrfs_log_all_parents()
6811 int slot = path->slots[0]; in btrfs_log_all_parents()
6817 ret = btrfs_next_leaf(root, path); in btrfs_log_all_parents()
6896 path->slots[0]++; in btrfs_log_all_parents()
6900 btrfs_free_path(path); in btrfs_log_all_parents()
6906 struct btrfs_path *path, in log_new_ancestors() argument
6911 btrfs_item_key_to_cpu(path->nodes[0], &found_key, path->slots[0]); in log_new_ancestors()
6921 btrfs_release_path(path); in log_new_ancestors()
6943 ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0); in log_new_ancestors()
6947 leaf = path->nodes[0]; in log_new_ancestors()
6948 slot = path->slots[0]; in log_new_ancestors()
6950 ret = btrfs_next_leaf(root, path); in log_new_ancestors()
6955 leaf = path->nodes[0]; in log_new_ancestors()
6956 slot = path->slots[0]; in log_new_ancestors()
7012 struct btrfs_path *path; in log_all_new_ancestors() local
7023 path = btrfs_alloc_path(); in log_all_new_ancestors()
7024 if (!path) in log_all_new_ancestors()
7031 ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0); in log_all_new_ancestors()
7035 path->slots[0]++; in log_all_new_ancestors()
7038 struct extent_buffer *leaf = path->nodes[0]; in log_all_new_ancestors()
7039 int slot = path->slots[0]; in log_all_new_ancestors()
7043 ret = btrfs_next_leaf(root, path); in log_all_new_ancestors()
7076 ret = log_new_ancestors(trans, root, path, ctx); in log_all_new_ancestors()
7079 btrfs_release_path(path); in log_all_new_ancestors()
7084 btrfs_free_path(path); in log_all_new_ancestors()
7243 struct btrfs_path *path; in btrfs_recover_log_trees() local
7252 path = btrfs_alloc_path(); in btrfs_recover_log_trees()
7253 if (!path) in btrfs_recover_log_trees()
7282 ret = btrfs_search_slot(NULL, log_root_tree, &key, path, 0, 0); in btrfs_recover_log_trees()
7289 if (path->slots[0] == 0) in btrfs_recover_log_trees()
7291 path->slots[0]--; in btrfs_recover_log_trees()
7293 btrfs_item_key_to_cpu(path->nodes[0], &found_key, in btrfs_recover_log_trees()
7294 path->slots[0]); in btrfs_recover_log_trees()
7295 btrfs_release_path(path); in btrfs_recover_log_trees()
7353 ret = fixup_inode_link_counts(trans, wc.replay_dest, path); in btrfs_recover_log_trees()
7385 btrfs_release_path(path); in btrfs_recover_log_trees()
7400 btrfs_free_path(path); in btrfs_recover_log_trees()
7416 btrfs_free_path(path); in btrfs_recover_log_trees()
7598 struct btrfs_path *path; in btrfs_log_new_name() local
7608 path = btrfs_alloc_path(); in btrfs_log_new_name()
7609 if (!path) { in btrfs_log_new_name()
7628 btrfs_free_path(path); in btrfs_log_new_name()
7646 ret = del_logged_dentry(trans, log, path, btrfs_ino(old_dir), in btrfs_log_new_name()
7653 btrfs_release_path(path); in btrfs_log_new_name()
7654 ret = insert_dir_log_key(trans, log, path, in btrfs_log_new_name()
7660 btrfs_free_path(path); in btrfs_log_new_name()