Lines Matching defs:cow
184 struct extent_buffer *cow;
200 cow = btrfs_alloc_tree_block(trans, root, 0, new_root_objectid,
203 if (IS_ERR(cow))
204 return PTR_ERR(cow);
206 copy_extent_buffer_full(cow, buf);
207 btrfs_set_header_bytenr(cow, cow->start);
208 btrfs_set_header_generation(cow, trans->transid);
209 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
210 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
213 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
215 btrfs_set_header_owner(cow, new_root_objectid);
217 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
221 ret = btrfs_inc_ref(trans, root, cow, 1);
223 ret = btrfs_inc_ref(trans, root, cow, 0);
225 btrfs_tree_unlock(cow);
226 free_extent_buffer(cow);
231 btrfs_mark_buffer_dirty(cow);
232 *cow_ret = cow;
851 struct extent_buffer *cow,
915 ret = btrfs_inc_ref(trans, root, cow, 1);
924 ret = btrfs_inc_ref(trans, root, cow, 1);
926 ret = btrfs_inc_ref(trans, root, cow, 0);
942 ret = btrfs_inc_ref(trans, root, cow, 1);
944 ret = btrfs_inc_ref(trans, root, cow, 0);
1001 * does the dirty work in cow of a single block. The parent block (if
1002 * supplied) is updated to point to the new cow copy. The new buffer is marked
1008 * empty_size -- a hint that you plan on doing more cow. This is the size in
1022 struct extent_buffer *cow;
1048 cow = alloc_tree_block_no_bg_flush(trans, root, parent_start, &disk_key,
1050 if (IS_ERR(cow))
1051 return PTR_ERR(cow);
1053 /* cow is set to blocking by btrfs_init_new_buffer */
1055 copy_extent_buffer_full(cow, buf);
1056 btrfs_set_header_bytenr(cow, cow->start);
1057 btrfs_set_header_generation(cow, trans->transid);
1058 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
1059 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
1062 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
1064 btrfs_set_header_owner(cow, root->root_key.objectid);
1066 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
1068 ret = update_ref_for_cow(trans, root, buf, cow, &last_ref);
1070 btrfs_tree_unlock(cow);
1071 free_extent_buffer(cow);
1077 ret = btrfs_reloc_cow_block(trans, root, buf, cow);
1079 btrfs_tree_unlock(cow);
1080 free_extent_buffer(cow);
1092 atomic_inc(&cow->refs);
1093 ret = tree_mod_log_insert_root(root->node, cow, 1);
1095 rcu_assign_pointer(root->node, cow);
1106 cow->start);
1113 btrfs_tree_unlock(cow);
1114 free_extent_buffer(cow);
1125 btrfs_mark_buffer_dirty(cow);
1126 *cow_ret = cow;
1456 * We do not need to cow a block if
2041 /* left was locked after cow */
2692 * @cow: boolean should CoW operations be performed. Must always be 1
2709 int ins_len, int cow)
2726 BUG_ON(!cow && ins_len);
2744 if (!cow)
2747 if (cow && (p->keep_locks || p->lowest_level))
2765 if (cow) {
2769 * if we don't really need to cow this block
2958 * Naturally, there is no support for insert, delete or cow operations.
2961 * btrfs_search_slot at that point in time with ins_len and cow both set to 0.
3861 /* cow and double check */
4103 /* cow and double check */
5241 * This does not cow, but it does stuff the starting key it finds back
5242 * into min_key, so you can call btrfs_search_slot with cow=1 on the