Lines Matching refs:cow

315 	struct extent_buffer *cow;
334 cow = btrfs_alloc_tree_block(trans, root, 0, new_root_objectid,
337 if (IS_ERR(cow))
338 return PTR_ERR(cow);
340 copy_extent_buffer_full(cow, buf);
341 btrfs_set_header_bytenr(cow, cow->start);
342 btrfs_set_header_generation(cow, trans->transid);
343 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
344 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
347 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
349 btrfs_set_header_owner(cow, new_root_objectid);
351 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
355 ret = btrfs_inc_ref(trans, root, cow, 1);
357 ret = btrfs_inc_ref(trans, root, cow, 0);
359 btrfs_tree_unlock(cow);
360 free_extent_buffer(cow);
365 btrfs_mark_buffer_dirty(trans, cow);
366 *cow_ret = cow;
413 struct extent_buffer *cow,
481 ret = btrfs_inc_ref(trans, root, cow, 1);
490 ret = btrfs_inc_ref(trans, root, cow, 1);
492 ret = btrfs_inc_ref(trans, root, cow, 0);
505 ret = btrfs_inc_ref(trans, root, cow, 1);
507 ret = btrfs_inc_ref(trans, root, cow, 0);
521 * does the dirty work in cow of a single block. The parent block (if
522 * supplied) is updated to point to the new cow copy. The new buffer is marked
528 * empty_size -- a hint that you plan on doing more cow. This is the size in
542 struct extent_buffer *cow;
571 cow = btrfs_alloc_tree_block(trans, root, parent_start,
574 if (IS_ERR(cow))
575 return PTR_ERR(cow);
577 /* cow is set to blocking by btrfs_init_new_buffer */
579 copy_extent_buffer_full(cow, buf);
580 btrfs_set_header_bytenr(cow, cow->start);
581 btrfs_set_header_generation(cow, trans->transid);
582 btrfs_set_header_backref_rev(cow, BTRFS_MIXED_BACKREF_REV);
583 btrfs_clear_header_flag(cow, BTRFS_HEADER_FLAG_WRITTEN |
586 btrfs_set_header_flag(cow, BTRFS_HEADER_FLAG_RELOC);
588 btrfs_set_header_owner(cow, root->root_key.objectid);
590 write_extent_buffer_fsid(cow, fs_info->fs_devices->metadata_uuid);
592 ret = update_ref_for_cow(trans, root, buf, cow, &last_ref);
594 btrfs_tree_unlock(cow);
595 free_extent_buffer(cow);
601 ret = btrfs_reloc_cow_block(trans, root, buf, cow);
603 btrfs_tree_unlock(cow);
604 free_extent_buffer(cow);
616 ret = btrfs_tree_mod_log_insert_root(root->node, cow, true);
618 btrfs_tree_unlock(cow);
619 free_extent_buffer(cow);
623 atomic_inc(&cow->refs);
624 rcu_assign_pointer(root->node, cow);
635 btrfs_tree_unlock(cow);
636 free_extent_buffer(cow);
641 cow->start);
648 btrfs_tree_unlock(cow);
649 free_extent_buffer(cow);
660 btrfs_mark_buffer_dirty(trans, cow);
661 *cow_ret = cow;
676 * We do not need to cow a block if
1138 /* left was locked after cow */
1982 * @cow: boolean should CoW operations be performed. Must always be 1
1999 int ins_len, int cow)
2019 BUG_ON(!cow && ins_len);
2026 ASSERT(!p->nowait || !cow);
2044 if (!cow)
2047 if (cow && (p->keep_locks || p->lowest_level))
2075 if (cow) {
2079 * if we don't really need to cow this block
2243 * Naturally, there is no support for insert, delete or cow operations.
2246 * btrfs_search_slot at that point in time with ins_len and cow both set to 0.
4600 * This does not cow, but it does stuff the starting key it finds back
4601 * into min_key, so you can call btrfs_search_slot with cow=1 on the