Lines Matching refs:root
59 struct btrfs_root *root; member
194 btrfs_page_clamp_clear_ordered(inode->root->fs_info, page, in btrfs_cleanup_ordered_extents()
236 struct btrfs_root *root, struct inode *inode, in insert_inline_extent() argument
265 ret = btrfs_insert_empty_item(trans, root, path, &key, in insert_inline_extent()
315 size = ALIGN(size, root->fs_info->sectorsize); in insert_inline_extent()
346 struct btrfs_root *root = inode->root; in cow_file_range_inline() local
347 struct btrfs_fs_info *fs_info = root->fs_info; in cow_file_range_inline()
374 trans = btrfs_join_transaction(root); in cow_file_range_inline()
394 ret = btrfs_drop_extents(trans, root, inode, &drop_args); in cow_file_range_inline()
403 root, &inode->vfs_inode, start, in cow_file_range_inline()
415 ret = btrfs_update_inode(trans, root, inode); in cow_file_range_inline()
493 if (inode->root->fs_info->sectorsize < PAGE_SIZE) in inode_can_compress()
508 struct btrfs_fs_info *fs_info = inode->root->fs_info; in inode_need_compress()
851 struct btrfs_fs_info *fs_info = inode->root->fs_info; in submit_compressed_extents()
856 struct btrfs_root *root = inode->root; in submit_compressed_extents() local
902 ret = btrfs_reserve_extent(root, async_extent->ram_size, in submit_compressed_extents()
1084 struct btrfs_root *root = inode->root; in cow_file_range() local
1085 struct btrfs_fs_info *fs_info = root->fs_info; in cow_file_range()
1174 if (btrfs_is_data_reloc_root(root)) in cow_file_range()
1181 ret = btrfs_reserve_extent(root, cur_alloc_size, cur_alloc_size, in cow_file_range()
1210 if (btrfs_is_data_reloc_root(root)) { in cow_file_range()
1401 struct btrfs_fs_info *fs_info = inode->root->fs_info; in cow_file_range_async()
1559 const bool is_reloc_ino = btrfs_is_data_reloc_root(inode->root); in fallback_to_cow()
1601 struct btrfs_fs_info *fs_info = inode->root->fs_info; in fallback_to_cow()
1633 struct btrfs_fs_info *fs_info = inode->root->fs_info; in run_delalloc_nocow()
1634 struct btrfs_root *root = inode->root; in run_delalloc_nocow() local
1670 ret = btrfs_lookup_file_extent(NULL, root, path, ino, in run_delalloc_nocow()
1693 ret = btrfs_next_leaf(root, path); in run_delalloc_nocow()
1776 btrfs_root_last_snapshot(&root->root_item)) in run_delalloc_nocow()
1789 ret = btrfs_cross_ref_exist(root, ino, in run_delalloc_nocow()
1813 if (!freespace_inode && atomic_read(&root->snapshot_force_cow)) in run_delalloc_nocow()
1921 if (btrfs_is_data_reloc_root(root)) in run_delalloc_nocow()
1998 const bool zoned = btrfs_is_zoned(inode->root->fs_info); in btrfs_run_delalloc_range()
2009 (zoned && btrfs_is_data_reloc_root(inode->root))); in btrfs_run_delalloc_range()
2123 static void btrfs_add_delalloc_inodes(struct btrfs_root *root, in btrfs_add_delalloc_inodes() argument
2128 spin_lock(&root->delalloc_lock); in btrfs_add_delalloc_inodes()
2131 &root->delalloc_inodes); in btrfs_add_delalloc_inodes()
2134 root->nr_delalloc_inodes++; in btrfs_add_delalloc_inodes()
2135 if (root->nr_delalloc_inodes == 1) { in btrfs_add_delalloc_inodes()
2137 BUG_ON(!list_empty(&root->delalloc_root)); in btrfs_add_delalloc_inodes()
2138 list_add_tail(&root->delalloc_root, in btrfs_add_delalloc_inodes()
2143 spin_unlock(&root->delalloc_lock); in btrfs_add_delalloc_inodes()
2147 void __btrfs_del_delalloc_inode(struct btrfs_root *root, in __btrfs_del_delalloc_inode() argument
2150 struct btrfs_fs_info *fs_info = root->fs_info; in __btrfs_del_delalloc_inode()
2156 root->nr_delalloc_inodes--; in __btrfs_del_delalloc_inode()
2157 if (!root->nr_delalloc_inodes) { in __btrfs_del_delalloc_inode()
2158 ASSERT(list_empty(&root->delalloc_inodes)); in __btrfs_del_delalloc_inode()
2160 BUG_ON(list_empty(&root->delalloc_root)); in __btrfs_del_delalloc_inode()
2161 list_del_init(&root->delalloc_root); in __btrfs_del_delalloc_inode()
2167 static void btrfs_del_delalloc_inode(struct btrfs_root *root, in btrfs_del_delalloc_inode() argument
2170 spin_lock(&root->delalloc_lock); in btrfs_del_delalloc_inode()
2171 __btrfs_del_delalloc_inode(root, inode); in btrfs_del_delalloc_inode()
2172 spin_unlock(&root->delalloc_lock); in btrfs_del_delalloc_inode()
2192 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_set_delalloc_extent() local
2213 btrfs_add_delalloc_inodes(root, inode); in btrfs_set_delalloc_extent()
2250 struct btrfs_root *root = inode->root; in btrfs_clear_delalloc_extent() local
2263 root != fs_info->tree_root) in btrfs_clear_delalloc_extent()
2270 if (!btrfs_is_data_reloc_root(root) && in btrfs_clear_delalloc_extent()
2282 btrfs_del_delalloc_inode(root, inode); in btrfs_clear_delalloc_extent()
2551 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_submit_data_bio() local
2595 if (btrfs_is_data_reloc_root(root)) in btrfs_submit_data_bio()
2899 struct btrfs_root *root = inode->root; in insert_reserved_file_extent() local
2900 const u64 sectorsize = root->fs_info->sectorsize; in insert_reserved_file_extent()
2929 ret = btrfs_drop_extents(trans, root, inode, &drop_args); in insert_reserved_file_extent()
2938 ret = btrfs_insert_empty_item(trans, root, path, &ins, in insert_reserved_file_extent()
2979 ret = btrfs_alloc_reserved_file_extent(trans, root, btrfs_ino(inode), in insert_reserved_file_extent()
3045 struct btrfs_root *root = inode->root; in btrfs_finish_ordered_io() local
3046 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_finish_ordered_io()
3092 trans = btrfs_join_transaction_spacecache(root); in btrfs_finish_ordered_io()
3094 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
3101 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
3111 trans = btrfs_join_transaction_spacecache(root); in btrfs_finish_ordered_io()
3113 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
3133 BUG_ON(root == fs_info->tree_root); in btrfs_finish_ordered_io()
3167 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
3233 btrfs_qgroup_free_refroot(fs_info, inode->root->root_key.objectid, in btrfs_finish_ordered_io()
3338 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_verify_data_csum() local
3339 const u32 sectorsize = root->fs_info->sectorsize; in btrfs_verify_data_csum()
3365 if (!root->fs_info->csum_root) in btrfs_verify_data_csum()
3376 if (btrfs_is_data_reloc_root(root) && in btrfs_verify_data_csum()
3390 root->fs_info->sectorsize_bits; in btrfs_verify_data_csum()
3492 ret = btrfs_insert_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_add()
3508 return btrfs_del_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_del()
3515 int btrfs_orphan_cleanup(struct btrfs_root *root) in btrfs_orphan_cleanup() argument
3517 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_orphan_cleanup()
3526 if (cmpxchg(&root->orphan_cleanup_state, 0, ORPHAN_CLEANUP_STARTED)) in btrfs_orphan_cleanup()
3541 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_orphan_cleanup()
3588 inode = btrfs_iget(fs_info->sb, last_objectid, root); in btrfs_orphan_cleanup()
3593 if (ret == -ENOENT && root == fs_info->tree_root) { in btrfs_orphan_cleanup()
3661 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3668 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_cleanup()
3684 root->orphan_cleanup_state = ORPHAN_CLEANUP_DONE; in btrfs_orphan_cleanup()
3686 if (test_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &root->state)) { in btrfs_orphan_cleanup()
3687 trans = btrfs_join_transaction(root); in btrfs_orphan_cleanup()
3781 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_read_locked_inode() local
3802 ret = btrfs_lookup_inode(NULL, root, path, &location, 0); in btrfs_read_locked_inode()
3939 root->root_key.objectid, ret); in btrfs_read_locked_inode()
4027 struct btrfs_root *root, in btrfs_update_inode_item() argument
4039 ret = btrfs_lookup_inode(trans, root, path, &inode->location, 1); in btrfs_update_inode_item()
4063 struct btrfs_root *root, in btrfs_update_inode() argument
4066 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_update_inode()
4077 && !btrfs_is_data_reloc_root(root) in btrfs_update_inode()
4079 btrfs_update_root_times(trans, root); in btrfs_update_inode()
4081 ret = btrfs_delayed_update_inode(trans, root, inode); in btrfs_update_inode()
4087 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode()
4091 struct btrfs_root *root, struct btrfs_inode *inode) in btrfs_update_inode_fallback() argument
4095 ret = btrfs_update_inode(trans, root, inode); in btrfs_update_inode_fallback()
4097 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode_fallback()
4111 struct btrfs_root *root = dir->root; in __btrfs_unlink_inode() local
4112 struct btrfs_fs_info *fs_info = root->fs_info; in __btrfs_unlink_inode()
4126 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in __btrfs_unlink_inode()
4132 ret = btrfs_delete_one_dir_name(trans, root, path, di); in __btrfs_unlink_inode()
4155 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino, in __btrfs_unlink_inode()
4171 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, inode, in __btrfs_unlink_inode()
4178 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, dir, in __btrfs_unlink_inode()
4205 ret = btrfs_update_inode(trans, root, dir); in __btrfs_unlink_inode()
4218 ret = btrfs_update_inode(trans, inode->root, inode); in btrfs_unlink_inode()
4233 struct btrfs_root *root = BTRFS_I(dir)->root; in __unlink_start_trans() local
4242 return btrfs_start_transaction_fallback_global_rsv(root, 5); in __unlink_start_trans()
4272 btrfs_btree_balance_dirty(BTRFS_I(dir)->root->fs_info); in btrfs_unlink()
4279 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_unlink_subvol() local
4293 objectid = inode->root->root_key.objectid; in btrfs_unlink_subvol()
4305 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in btrfs_unlink_subvol()
4315 ret = btrfs_delete_one_dir_name(trans, root, path, di); in btrfs_unlink_subvol()
4332 di = btrfs_search_dir_index_item(root, path, dir_ino, in btrfs_unlink_subvol()
4349 root->root_key.objectid, dir_ino, in btrfs_unlink_subvol()
4366 ret = btrfs_update_inode_fallback(trans, root, BTRFS_I(dir)); in btrfs_unlink_subvol()
4378 static noinline int may_destroy_subvol(struct btrfs_root *root) in may_destroy_subvol() argument
4380 struct btrfs_fs_info *fs_info = root->fs_info; in may_destroy_subvol()
4397 if (key.objectid == root->root_key.objectid) { in may_destroy_subvol()
4407 key.objectid = root->root_key.objectid; in may_destroy_subvol()
4420 if (key.objectid == root->root_key.objectid && in may_destroy_subvol()
4430 static void btrfs_prune_dentries(struct btrfs_root *root) in btrfs_prune_dentries() argument
4432 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_prune_dentries()
4440 WARN_ON(btrfs_root_refs(&root->root_item) != 0); in btrfs_prune_dentries()
4442 spin_lock(&root->inode_lock); in btrfs_prune_dentries()
4444 node = root->inode_tree.rb_node; in btrfs_prune_dentries()
4472 spin_unlock(&root->inode_lock); in btrfs_prune_dentries()
4481 spin_lock(&root->inode_lock); in btrfs_prune_dentries()
4485 if (cond_resched_lock(&root->inode_lock)) in btrfs_prune_dentries()
4490 spin_unlock(&root->inode_lock); in btrfs_prune_dentries()
4496 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_delete_subvolume() local
4498 struct btrfs_root *dest = BTRFS_I(inode)->root; in btrfs_delete_subvolume()
4524 root->root_key.objectid); in btrfs_delete_subvolume()
4543 ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true); in btrfs_delete_subvolume()
4547 trans = btrfs_start_transaction(root, 0); in btrfs_delete_subvolume()
4610 btrfs_subvolume_release_metadata(root, &block_rsv); in btrfs_delete_subvolume()
4679 btrfs_btree_balance_dirty(BTRFS_I(dir)->root->fs_info); in btrfs_rmdir()
4717 struct btrfs_root *root, in btrfs_truncate_inode_items() argument
4722 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_truncate_inode_items()
4755 test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) in btrfs_truncate_inode_items()
4763 if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
4783 if (min_type == 0 && root == inode->root) in btrfs_truncate_inode_items()
4802 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_truncate_inode_items()
4886 &root->state) && in btrfs_truncate_inode_items()
4903 &root->state)) in btrfs_truncate_inode_items()
4939 if (test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) in btrfs_truncate_inode_items()
4949 if (root == inode->root) { in btrfs_truncate_inode_items()
4981 root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
4988 ref.real_root = root->root_key.objectid; in btrfs_truncate_inode_items()
4991 root->root_key.objectid, false); in btrfs_truncate_inode_items()
5010 ret = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
5048 err = btrfs_del_items(trans, root, path, pending_del_slot, in btrfs_truncate_inode_items()
5055 if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
5082 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_truncate_block()
5213 static int maybe_insert_hole(struct btrfs_root *root, struct btrfs_inode *inode, in maybe_insert_hole() argument
5216 struct btrfs_fs_info *fs_info = root->fs_info; in maybe_insert_hole()
5235 trans = btrfs_start_transaction(root, 3); in maybe_insert_hole()
5243 ret = btrfs_drop_extents(trans, root, inode, &drop_args); in maybe_insert_hole()
5250 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(inode), in maybe_insert_hole()
5256 btrfs_update_inode(trans, root, inode); in maybe_insert_hole()
5270 struct btrfs_root *root = inode->root; in btrfs_cont_expand() local
5271 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_cont_expand()
5313 err = maybe_insert_hole(root, inode, cur_offset, in btrfs_cont_expand()
5373 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_setsize() local
5401 btrfs_drew_write_lock(&root->snapshot_lock); in btrfs_setsize()
5404 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
5408 trans = btrfs_start_transaction(root, 1); in btrfs_setsize()
5410 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
5417 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_setsize()
5418 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
5468 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_setattr() local
5471 if (btrfs_root_readonly(root)) in btrfs_setattr()
5591 static struct btrfs_trans_handle *evict_refill_and_join(struct btrfs_root *root, in evict_refill_and_join() argument
5594 struct btrfs_fs_info *fs_info = root->fs_info; in evict_refill_and_join()
5613 ret = btrfs_block_rsv_refill(root, rsv, rsv->size + delayed_refs_extra, in evict_refill_and_join()
5629 trans = btrfs_join_transaction(root); in evict_refill_and_join()
5646 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_evict_inode() local
5652 if (!root) { in btrfs_evict_inode()
5661 ((btrfs_root_refs(&root->root_item) != 0 && in btrfs_evict_inode()
5662 root->root_key.objectid != BTRFS_ROOT_TREE_OBJECTID) || in btrfs_evict_inode()
5675 BUG_ON(btrfs_root_refs(&root->root_item) != 0 && in btrfs_evict_inode()
5676 root->root_key.objectid != BTRFS_ROOT_TREE_OBJECTID); in btrfs_evict_inode()
5693 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5699 ret = btrfs_truncate_inode_items(trans, root, BTRFS_I(inode), in btrfs_evict_inode()
5719 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5754 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_inode_by_name() local
5761 di = btrfs_lookup_dir_item(NULL, root, path, btrfs_ino(BTRFS_I(dir)), in btrfs_inode_by_name()
5772 btrfs_warn(root->fs_info, in btrfs_inode_by_name()
5810 key.objectid = BTRFS_I(dir)->root->root_key.objectid; in fixup_tree_root_location()
5853 struct btrfs_root *root = BTRFS_I(inode)->root; in inode_tree_add() local
5863 spin_lock(&root->inode_lock); in inode_tree_add()
5864 p = &root->inode_tree.rb_node; in inode_tree_add()
5876 rb_replace_node(parent, new, &root->inode_tree); in inode_tree_add()
5878 spin_unlock(&root->inode_lock); in inode_tree_add()
5883 rb_insert_color(new, &root->inode_tree); in inode_tree_add()
5884 spin_unlock(&root->inode_lock); in inode_tree_add()
5889 struct btrfs_root *root = inode->root; in inode_tree_del() local
5892 spin_lock(&root->inode_lock); in inode_tree_del()
5894 rb_erase(&inode->rb_node, &root->inode_tree); in inode_tree_del()
5896 empty = RB_EMPTY_ROOT(&root->inode_tree); in inode_tree_del()
5898 spin_unlock(&root->inode_lock); in inode_tree_del()
5900 if (empty && btrfs_root_refs(&root->root_item) == 0) { in inode_tree_del()
5901 spin_lock(&root->inode_lock); in inode_tree_del()
5902 empty = RB_EMPTY_ROOT(&root->inode_tree); in inode_tree_del()
5903 spin_unlock(&root->inode_lock); in inode_tree_del()
5905 btrfs_add_dead_root(root); in inode_tree_del()
5918 BTRFS_I(inode)->root = btrfs_grab_root(args->root); in btrfs_init_locked_inode()
5919 BUG_ON(args->root && !BTRFS_I(inode)->root); in btrfs_init_locked_inode()
5928 args->root == BTRFS_I(inode)->root; in btrfs_find_actor()
5932 struct btrfs_root *root) in btrfs_iget_locked() argument
5936 unsigned long hashval = btrfs_inode_hash(ino, root); in btrfs_iget_locked()
5939 args.root = root; in btrfs_iget_locked()
5954 struct btrfs_root *root, struct btrfs_path *path) in btrfs_iget_path() argument
5958 inode = btrfs_iget_locked(s, ino, root); in btrfs_iget_path()
5985 struct inode *btrfs_iget(struct super_block *s, u64 ino, struct btrfs_root *root) in btrfs_iget() argument
5987 return btrfs_iget_path(s, ino, root, NULL); in btrfs_iget()
5992 struct btrfs_root *root) in new_simple_dir() argument
5999 BTRFS_I(inode)->root = btrfs_grab_root(root); in new_simple_dir()
6042 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_lookup_dentry() local
6043 struct btrfs_root *sub_root = root; in btrfs_lookup_dentry()
6056 inode = btrfs_iget(dir->i_sb, location.objectid, root); in btrfs_lookup_dentry()
6082 if (root != sub_root) in btrfs_lookup_dentry()
6085 if (!IS_ERR(inode) && root != sub_root) { in btrfs_lookup_dentry()
6101 struct btrfs_root *root; in btrfs_dentry_delete() local
6108 root = BTRFS_I(inode)->root; in btrfs_dentry_delete()
6109 if (btrfs_root_refs(&root->root_item) == 0) in btrfs_dentry_delete()
6134 struct btrfs_root *root = inode->root; in btrfs_set_inode_index_count() local
6148 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_set_inode_index_count()
6273 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_real_readdir() local
6312 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_real_readdir()
6322 ret = btrfs_next_leaf(root, path); in btrfs_real_readdir()
6421 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_dirty_inode() local
6428 trans = btrfs_join_transaction(root); in btrfs_dirty_inode()
6432 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_dirty_inode()
6436 trans = btrfs_start_transaction(root, 1); in btrfs_dirty_inode()
6440 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_dirty_inode()
6456 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_update_time() local
6459 if (btrfs_root_readonly(root)) in btrfs_update_time()
6501 args.root = BTRFS_I(inode)->root; in btrfs_insert_inode_locked()
6504 btrfs_inode_hash(inode->i_ino, BTRFS_I(inode)->root), in btrfs_insert_inode_locked()
6540 struct btrfs_root *root, in btrfs_new_inode() argument
6547 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_new_inode()
6604 BTRFS_I(inode)->root = btrfs_grab_root(root); in btrfs_new_inode()
6647 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems); in btrfs_new_inode()
6692 btrfs_update_root_times(trans, root); in btrfs_new_inode()
6698 btrfs_ino(BTRFS_I(inode)), root->root_key.objectid, ret); in btrfs_new_inode()
6723 struct btrfs_root *root = parent_inode->root; in btrfs_add_link() local
6728 memcpy(&key, &inode->root->root_key, sizeof(key)); in btrfs_add_link()
6737 root->root_key.objectid, parent_ino, in btrfs_add_link()
6740 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino, in btrfs_add_link()
6766 if (!test_bit(BTRFS_FS_LOG_RECOVERING, &root->fs_info->flags)) { in btrfs_add_link()
6772 ret = btrfs_update_inode(trans, root, parent_inode); in btrfs_add_link()
6782 root->root_key.objectid, parent_ino, in btrfs_add_link()
6790 err = btrfs_del_inode_ref(trans, root, name, name_len, in btrfs_add_link()
6817 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_mknod() local
6828 trans = btrfs_start_transaction(root, 5); in btrfs_mknod()
6832 err = btrfs_get_free_objectid(root, &objectid); in btrfs_mknod()
6836 inode = btrfs_new_inode(trans, root, mnt_userns, dir, in btrfs_mknod()
6863 btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_mknod()
6881 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_create() local
6892 trans = btrfs_start_transaction(root, 5); in btrfs_create()
6896 err = btrfs_get_free_objectid(root, &objectid); in btrfs_create()
6900 inode = btrfs_new_inode(trans, root, mnt_userns, dir, in btrfs_create()
6922 err = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_create()
6947 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_link() local
6955 if (root->root_key.objectid != BTRFS_I(inode)->root->root_key.objectid) in btrfs_link()
6971 trans = btrfs_start_transaction(root, inode->i_nlink ? 5 : 6); in btrfs_link()
6994 err = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_link()
7027 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_mkdir() local
7037 trans = btrfs_start_transaction(root, 5); in btrfs_mkdir()
7041 err = btrfs_get_free_objectid(root, &objectid); in btrfs_mkdir()
7045 inode = btrfs_new_inode(trans, root, mnt_userns, dir, in btrfs_mkdir()
7064 err = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_mkdir()
7152 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_get_extent()
7159 struct btrfs_root *root = inode->root; in btrfs_get_extent() local
7208 ret = btrfs_lookup_file_extent(NULL, root, path, objectid, start, 0); in btrfs_get_extent()
7258 ret = btrfs_next_leaf(root, path); in btrfs_get_extent()
7354 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
7528 struct btrfs_root *root = inode->root; in btrfs_new_extent_direct() local
7529 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_new_extent_direct()
7536 ret = btrfs_reserve_extent(root, len, len, fs_info->sectorsize, in btrfs_new_extent_direct()
7593 struct btrfs_root *root = BTRFS_I(inode)->root; in can_nocow_extent() local
7609 ret = btrfs_lookup_file_extent(NULL, root, path, in can_nocow_extent()
7667 btrfs_root_last_snapshot(&root->root_item))) in can_nocow_extent()
7686 root->fs_info->sectorsize) - 1; in can_nocow_extent()
7702 ret = btrfs_cross_ref_exist(root, btrfs_ino(BTRFS_I(inode)), in can_nocow_extent()
8252 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_check_read_dio_bio()
8321 btrfs_warn(BTRFS_I(dip->inode)->root->fs_info, in btrfs_end_dio_bio()
8713 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_invalidatepage()
9048 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_truncate() local
9101 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
9115 ret = btrfs_truncate_inode_items(trans, root, BTRFS_I(inode), in btrfs_truncate()
9123 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_truncate()
9130 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
9157 trans = btrfs_start_transaction(root, 1); in btrfs_truncate()
9169 ret2 = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_truncate()
9252 ei->root = NULL; in btrfs_alloc_inode()
9321 struct btrfs_root *root = inode->root; in btrfs_destroy_inode() local
9338 if (!root) in btrfs_destroy_inode()
9346 btrfs_err(root->fs_info, in btrfs_destroy_inode()
9358 btrfs_put_root(inode->root); in btrfs_destroy_inode()
9363 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_drop_inode() local
9365 if (root == NULL) in btrfs_drop_inode()
9369 if (btrfs_root_refs(&root->root_item) == 0) in btrfs_drop_inode()
9466 stat->dev = BTRFS_I(inode)->root->anon_dev; in btrfs_getattr()
9484 struct btrfs_root *root = BTRFS_I(old_dir)->root; in btrfs_rename_exchange() local
9485 struct btrfs_root *dest = BTRFS_I(new_dir)->root; in btrfs_rename_exchange()
9504 if (root != dest && in btrfs_rename_exchange()
9522 trans = btrfs_start_transaction(root, 12); in btrfs_rename_exchange()
9528 if (dest != root) { in btrfs_rename_exchange()
9569 ret = btrfs_insert_inode_ref(trans, root, in btrfs_rename_exchange()
9614 btrfs_pin_log_trans(root); in btrfs_rename_exchange()
9631 ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode)); in btrfs_rename_exchange()
9678 btrfs_end_log_trans(root); in btrfs_rename_exchange()
9707 btrfs_end_log_trans(root); in btrfs_rename_exchange()
9726 struct btrfs_root *root, in btrfs_whiteout_for_rename() argument
9736 ret = btrfs_get_free_objectid(root, &objectid); in btrfs_whiteout_for_rename()
9740 inode = btrfs_new_inode(trans, root, mnt_userns, dir, in btrfs_whiteout_for_rename()
9767 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_whiteout_for_rename()
9785 struct btrfs_root *root = BTRFS_I(old_dir)->root; in btrfs_rename() local
9786 struct btrfs_root *dest = BTRFS_I(new_dir)->root; in btrfs_rename()
9799 if (old_ino != BTRFS_FIRST_FREE_OBJECTID && root != dest) in btrfs_rename()
9854 trans = btrfs_start_transaction(root, trans_num_items); in btrfs_rename()
9860 if (dest != root) { in btrfs_rename()
9915 btrfs_pin_log_trans(root); in btrfs_rename()
9922 ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode)); in btrfs_rename()
9965 btrfs_end_log_trans(root); in btrfs_rename()
9970 ret = btrfs_whiteout_for_rename(trans, root, mnt_userns, in btrfs_rename()
9998 btrfs_end_log_trans(root); in btrfs_rename()
10069 static int start_delalloc_inodes(struct btrfs_root *root, in start_delalloc_inodes() argument
10084 mutex_lock(&root->delalloc_mutex); in start_delalloc_inodes()
10085 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
10086 list_splice_init(&root->delalloc_inodes, &splice); in start_delalloc_inodes()
10092 &root->delalloc_inodes); in start_delalloc_inodes()
10100 cond_resched_lock(&root->delalloc_lock); in start_delalloc_inodes()
10103 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
10116 btrfs_queue_work(root->fs_info->flush_workers, in start_delalloc_inodes()
10125 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
10127 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
10137 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
10138 list_splice_tail(&splice, &root->delalloc_inodes); in start_delalloc_inodes()
10139 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
10141 mutex_unlock(&root->delalloc_mutex); in start_delalloc_inodes()
10145 int btrfs_start_delalloc_snapshot(struct btrfs_root *root, bool in_reclaim_context) in btrfs_start_delalloc_snapshot() argument
10153 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_start_delalloc_snapshot()
10158 return start_delalloc_inodes(root, &wbc, true, in_reclaim_context); in btrfs_start_delalloc_snapshot()
10170 struct btrfs_root *root; in btrfs_start_delalloc_roots() local
10190 root = list_first_entry(&splice, struct btrfs_root, in btrfs_start_delalloc_roots()
10192 root = btrfs_grab_root(root); in btrfs_start_delalloc_roots()
10193 BUG_ON(!root); in btrfs_start_delalloc_roots()
10194 list_move_tail(&root->delalloc_root, in btrfs_start_delalloc_roots()
10198 ret = start_delalloc_inodes(root, &wbc, false, in_reclaim_context); in btrfs_start_delalloc_roots()
10199 btrfs_put_root(root); in btrfs_start_delalloc_roots()
10222 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_symlink() local
10246 trans = btrfs_start_transaction(root, 7); in btrfs_symlink()
10250 err = btrfs_get_free_objectid(root, &objectid); in btrfs_symlink()
10254 inode = btrfs_new_inode(trans, root, mnt_userns, dir, in btrfs_symlink()
10287 err = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_symlink()
10313 err = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_symlink()
10407 btrfs_qgroup_free_refroot(inode->root->fs_info, in insert_prealloc_file_extent()
10408 inode->root->root_key.objectid, qgroup_released, in insert_prealloc_file_extent()
10421 struct btrfs_root *root = BTRFS_I(inode)->root; in __btrfs_prealloc_file_range() local
10444 ret = btrfs_reserve_extent(root, cur_bytes, cur_bytes, in __btrfs_prealloc_file_range()
10525 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in __btrfs_prealloc_file_range()
10571 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_permission() local
10576 if (btrfs_root_readonly(root)) in btrfs_permission()
10589 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_tmpfile() local
10598 trans = btrfs_start_transaction(root, 5); in btrfs_tmpfile()
10602 ret = btrfs_get_free_objectid(root, &objectid); in btrfs_tmpfile()
10606 inode = btrfs_new_inode(trans, root, mnt_userns, dir, NULL, 0, in btrfs_tmpfile()
10623 ret = btrfs_update_inode(trans, root, BTRFS_I(inode)); in btrfs_tmpfile()
10651 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_set_range_writeback()
10678 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_add_swapfile_pin()
10719 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_free_swapfile_pins()
10799 atomic_dec(&BTRFS_I(inode)->root->nr_swapfiles); in btrfs_swap_deactivate()
10806 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_swap_activate() local
10807 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_swap_activate()
10866 if (!btrfs_drew_try_write_lock(&root->snapshot_lock)) { in btrfs_swap_activate()
10882 spin_lock(&root->root_item_lock); in btrfs_swap_activate()
10883 if (btrfs_root_dead(root)) { in btrfs_swap_activate()
10884 spin_unlock(&root->root_item_lock); in btrfs_swap_activate()
10889 root->root_key.objectid); in btrfs_swap_activate()
10892 atomic_inc(&root->nr_swapfiles); in btrfs_swap_activate()
10893 spin_unlock(&root->root_item_lock); in btrfs_swap_activate()
11039 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_swap_activate()