Lines Matching defs:cow
315 struct extent_buffer *cow;
331 cow = btrfs_alloc_tree_block(trans, root, 0, new_root_objectid,
334 if (IS_ERR(cow))
335 return PTR_ERR(cow);
337 copy_extent_buffer_full(cow, buf);
338 btrfs_set_header_bytenr(cow, cow->start);
339 btrfs_set_header_generation(cow, trans->transid);
340 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
341 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
344 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
346 btrfs_set_header_owner(cow, new_root_objectid);
348 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
352 ret = btrfs_inc_ref(trans, root, cow, 1);
354 ret = btrfs_inc_ref(trans, root, cow, 0);
356 btrfs_tree_unlock(cow);
357 free_extent_buffer(cow);
362 btrfs_mark_buffer_dirty(trans, cow);
363 *cow_ret = cow;
402 struct extent_buffer *cow,
470 ret = btrfs_inc_ref(trans, root, cow, 1);
479 ret = btrfs_inc_ref(trans, root, cow, 1);
481 ret = btrfs_inc_ref(trans, root, cow, 0);
494 ret = btrfs_inc_ref(trans, root, cow, 1);
496 ret = btrfs_inc_ref(trans, root, cow, 0);
510 * does the dirty work in cow of a single block. The parent block (if
511 * supplied) is updated to point to the new cow copy. The new buffer is marked
517 * empty_size -- a hint that you plan on doing more cow. This is the size in
531 struct extent_buffer *cow;
557 cow = btrfs_alloc_tree_block(trans, root, parent_start,
560 if (IS_ERR(cow))
561 return PTR_ERR(cow);
563 /* cow is set to blocking by btrfs_init_new_buffer */
565 copy_extent_buffer_full(cow, buf);
566 btrfs_set_header_bytenr(cow, cow->start);
567 btrfs_set_header_generation(cow, trans->transid);
568 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
569 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
572 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
574 btrfs_set_header_owner(cow, root->root_key.objectid);
576 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
578 ret = update_ref_for_cow(trans, root, buf, cow, &last_ref);
580 btrfs_tree_unlock(cow);
581 free_extent_buffer(cow);
587 ret = btrfs_reloc_cow_block(trans, root, buf, cow);
589 btrfs_tree_unlock(cow);
590 free_extent_buffer(cow);
602 ret = btrfs_tree_mod_log_insert_root(root->node, cow, true);
604 btrfs_tree_unlock(cow);
605 free_extent_buffer(cow);
609 atomic_inc(&cow->refs);
610 rcu_assign_pointer(root->node, cow);
621 btrfs_tree_unlock(cow);
622 free_extent_buffer(cow);
627 cow->start);
634 btrfs_tree_unlock(cow);
635 free_extent_buffer(cow);
646 btrfs_mark_buffer_dirty(trans, cow);
647 *cow_ret = cow;
662 * We do not need to cow a block if
1265 /* left was locked after cow */
2109 * @cow: boolean should CoW operations be performed. Must always be 1
2126 int ins_len, int cow)
2146 BUG_ON(!cow && ins_len);
2153 ASSERT(!p->nowait || !cow);
2171 if (!cow)
2174 if (cow && (p->keep_locks || p->lowest_level))
2202 if (cow) {
2206 * if we don't really need to cow this block
2370 * Naturally, there is no support for insert, delete or cow operations.
2373 * btrfs_search_slot at that point in time with ins_len and cow both set to 0.
4724 * This does not cow, but it does stuff the starting key it finds back
4725 * into min_key, so you can call btrfs_search_slot with cow=1 on the