• Home
  • Raw
  • Download

Lines Matching refs:root

57 	struct btrfs_root *root;  member
162 struct btrfs_root *root, struct inode *inode, in insert_inline_extent() argument
194 ret = btrfs_insert_empty_item(trans, root, path, &key, in insert_inline_extent()
244 size = ALIGN(size, root->fs_info->sectorsize); in insert_inline_extent()
259 ret = btrfs_update_inode(trans, root, inode); in insert_inline_extent()
276 struct btrfs_root *root = inode->root; in cow_file_range_inline() local
277 struct btrfs_fs_info *fs_info = root->fs_info; in cow_file_range_inline()
306 trans = btrfs_join_transaction(root); in cow_file_range_inline()
320 ret = __btrfs_drop_extents(trans, root, inode, path, start, aligned_end, in cow_file_range_inline()
331 root, &inode->vfs_inode, start, in cow_file_range_inline()
424 struct btrfs_fs_info *fs_info = inode->root->fs_info; in inode_need_compress()
769 struct btrfs_fs_info *fs_info = inode->root->fs_info; in submit_compressed_extents()
774 struct btrfs_root *root = inode->root; in submit_compressed_extents() local
820 ret = btrfs_reserve_extent(root, async_extent->ram_size, in submit_compressed_extents()
982 struct btrfs_root *root = inode->root; in cow_file_range() local
983 struct btrfs_fs_info *fs_info = root->fs_info; in cow_file_range()
1048 if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID) in cow_file_range()
1055 ret = btrfs_reserve_extent(root, cur_alloc_size, cur_alloc_size, in cow_file_range()
1083 if (root->root_key.objectid == in cow_file_range()
1242 struct btrfs_fs_info *fs_info = inode->root->fs_info; in cow_file_range_async()
1378 const bool is_reloc_ino = (inode->root->root_key.objectid == in fallback_to_cow()
1421 struct btrfs_fs_info *fs_info = inode->root->fs_info; in fallback_to_cow()
1453 struct btrfs_fs_info *fs_info = inode->root->fs_info; in run_delalloc_nocow()
1454 struct btrfs_root *root = inode->root; in run_delalloc_nocow() local
1490 ret = btrfs_lookup_file_extent(NULL, root, path, ino, in run_delalloc_nocow()
1513 ret = btrfs_next_leaf(root, path); in run_delalloc_nocow()
1596 btrfs_root_last_snapshot(&root->root_item)) in run_delalloc_nocow()
1603 ret = btrfs_cross_ref_exist(root, ino, in run_delalloc_nocow()
1627 if (!freespace_inode && atomic_read(&root->snapshot_force_cow)) in run_delalloc_nocow()
1734 if (root->root_key.objectid == in run_delalloc_nocow()
1932 static void btrfs_add_delalloc_inodes(struct btrfs_root *root, in btrfs_add_delalloc_inodes() argument
1937 spin_lock(&root->delalloc_lock); in btrfs_add_delalloc_inodes()
1940 &root->delalloc_inodes); in btrfs_add_delalloc_inodes()
1943 root->nr_delalloc_inodes++; in btrfs_add_delalloc_inodes()
1944 if (root->nr_delalloc_inodes == 1) { in btrfs_add_delalloc_inodes()
1946 BUG_ON(!list_empty(&root->delalloc_root)); in btrfs_add_delalloc_inodes()
1947 list_add_tail(&root->delalloc_root, in btrfs_add_delalloc_inodes()
1952 spin_unlock(&root->delalloc_lock); in btrfs_add_delalloc_inodes()
1956 void __btrfs_del_delalloc_inode(struct btrfs_root *root, in __btrfs_del_delalloc_inode() argument
1959 struct btrfs_fs_info *fs_info = root->fs_info; in __btrfs_del_delalloc_inode()
1965 root->nr_delalloc_inodes--; in __btrfs_del_delalloc_inode()
1966 if (!root->nr_delalloc_inodes) { in __btrfs_del_delalloc_inode()
1967 ASSERT(list_empty(&root->delalloc_inodes)); in __btrfs_del_delalloc_inode()
1969 BUG_ON(list_empty(&root->delalloc_root)); in __btrfs_del_delalloc_inode()
1970 list_del_init(&root->delalloc_root); in __btrfs_del_delalloc_inode()
1976 static void btrfs_del_delalloc_inode(struct btrfs_root *root, in btrfs_del_delalloc_inode() argument
1979 spin_lock(&root->delalloc_lock); in btrfs_del_delalloc_inode()
1980 __btrfs_del_delalloc_inode(root, inode); in btrfs_del_delalloc_inode()
1981 spin_unlock(&root->delalloc_lock); in btrfs_del_delalloc_inode()
2001 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_set_delalloc_extent() local
2022 btrfs_add_delalloc_inodes(root, inode); in btrfs_set_delalloc_extent()
2059 struct btrfs_root *root = inode->root; in btrfs_clear_delalloc_extent() local
2072 root != fs_info->tree_root) in btrfs_clear_delalloc_extent()
2079 if (root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID && in btrfs_clear_delalloc_extent()
2091 btrfs_del_delalloc_inode(root, inode); in btrfs_clear_delalloc_extent()
2183 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_submit_data_bio() local
2212 if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID) in btrfs_submit_data_bio()
2515 struct btrfs_root *root = inode->root; in insert_reserved_file_extent() local
2539 ret = __btrfs_drop_extents(trans, root, inode, path, file_pos, in insert_reserved_file_extent()
2551 ret = btrfs_insert_empty_item(trans, root, path, &ins, in insert_reserved_file_extent()
2575 ret = btrfs_alloc_reserved_file_extent(trans, root, btrfs_ino(inode), in insert_reserved_file_extent()
2632 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_finish_ordered_io() local
2677 trans = btrfs_join_transaction_spacecache(root); in btrfs_finish_ordered_io()
2679 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2686 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2696 trans = btrfs_join_transaction_spacecache(root); in btrfs_finish_ordered_io()
2698 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2716 BUG_ON(root == fs_info->tree_root); in btrfs_finish_ordered_io()
2740 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2835 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_writepage_endio_finish_ordered()
2901 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_verify_data_csum() local
2911 if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID && in btrfs_verify_data_csum()
3014 ret = btrfs_insert_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_add()
3030 return btrfs_del_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_del()
3037 int btrfs_orphan_cleanup(struct btrfs_root *root) in btrfs_orphan_cleanup() argument
3039 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_orphan_cleanup()
3048 if (cmpxchg(&root->orphan_cleanup_state, 0, ORPHAN_CLEANUP_STARTED)) in btrfs_orphan_cleanup()
3063 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_orphan_cleanup()
3110 inode = btrfs_iget(fs_info->sb, last_objectid, root); in btrfs_orphan_cleanup()
3115 if (ret == -ENOENT && root == fs_info->tree_root) { in btrfs_orphan_cleanup()
3168 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3175 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_cleanup()
3191 root->orphan_cleanup_state = ORPHAN_CLEANUP_DONE; in btrfs_orphan_cleanup()
3193 if (test_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &root->state)) { in btrfs_orphan_cleanup()
3194 trans = btrfs_join_transaction(root); in btrfs_orphan_cleanup()
3288 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_read_locked_inode() local
3309 ret = btrfs_lookup_inode(NULL, root, path, &location, 0); in btrfs_read_locked_inode()
3445 root->root_key.objectid, ret); in btrfs_read_locked_inode()
3530 struct btrfs_root *root, struct inode *inode) in btrfs_update_inode_item() argument
3542 ret = btrfs_lookup_inode(trans, root, path, &BTRFS_I(inode)->location, in btrfs_update_inode_item()
3567 struct btrfs_root *root, struct inode *inode) in btrfs_update_inode() argument
3569 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_update_inode()
3580 && root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID in btrfs_update_inode()
3582 btrfs_update_root_times(trans, root); in btrfs_update_inode()
3584 ret = btrfs_delayed_update_inode(trans, root, inode); in btrfs_update_inode()
3590 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode()
3594 struct btrfs_root *root, in btrfs_update_inode_fallback() argument
3599 ret = btrfs_update_inode(trans, root, inode); in btrfs_update_inode_fallback()
3601 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode_fallback()
3611 struct btrfs_root *root, in __btrfs_unlink_inode() argument
3616 struct btrfs_fs_info *fs_info = root->fs_info; in __btrfs_unlink_inode()
3631 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in __btrfs_unlink_inode()
3637 ret = btrfs_delete_one_dir_name(trans, root, path, di); in __btrfs_unlink_inode()
3660 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino, in __btrfs_unlink_inode()
3676 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, inode, in __btrfs_unlink_inode()
3683 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, dir, in __btrfs_unlink_inode()
3710 ret = btrfs_update_inode(trans, root, &dir->vfs_inode); in __btrfs_unlink_inode()
3716 struct btrfs_root *root, in btrfs_unlink_inode() argument
3721 ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len); in btrfs_unlink_inode()
3724 ret = btrfs_update_inode(trans, root, &inode->vfs_inode); in btrfs_unlink_inode()
3739 struct btrfs_root *root = BTRFS_I(dir)->root; in __unlink_start_trans() local
3748 return btrfs_start_transaction_fallback_global_rsv(root, 5); in __unlink_start_trans()
3753 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_unlink() local
3765 ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), in btrfs_unlink()
3779 btrfs_btree_balance_dirty(root->fs_info); in btrfs_unlink()
3786 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_unlink_subvol() local
3800 objectid = inode->root->root_key.objectid; in btrfs_unlink_subvol()
3812 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in btrfs_unlink_subvol()
3822 ret = btrfs_delete_one_dir_name(trans, root, path, di); in btrfs_unlink_subvol()
3839 di = btrfs_search_dir_index_item(root, path, dir_ino, in btrfs_unlink_subvol()
3856 root->root_key.objectid, dir_ino, in btrfs_unlink_subvol()
3873 ret = btrfs_update_inode_fallback(trans, root, dir); in btrfs_unlink_subvol()
3885 static noinline int may_destroy_subvol(struct btrfs_root *root) in may_destroy_subvol() argument
3887 struct btrfs_fs_info *fs_info = root->fs_info; in may_destroy_subvol()
3904 if (key.objectid == root->root_key.objectid) { in may_destroy_subvol()
3914 key.objectid = root->root_key.objectid; in may_destroy_subvol()
3927 if (key.objectid == root->root_key.objectid && in may_destroy_subvol()
3937 static void btrfs_prune_dentries(struct btrfs_root *root) in btrfs_prune_dentries() argument
3939 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_prune_dentries()
3947 WARN_ON(btrfs_root_refs(&root->root_item) != 0); in btrfs_prune_dentries()
3949 spin_lock(&root->inode_lock); in btrfs_prune_dentries()
3951 node = root->inode_tree.rb_node; in btrfs_prune_dentries()
3979 spin_unlock(&root->inode_lock); in btrfs_prune_dentries()
3988 spin_lock(&root->inode_lock); in btrfs_prune_dentries()
3992 if (cond_resched_lock(&root->inode_lock)) in btrfs_prune_dentries()
3997 spin_unlock(&root->inode_lock); in btrfs_prune_dentries()
4003 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_delete_subvolume() local
4005 struct btrfs_root *dest = BTRFS_I(inode)->root; in btrfs_delete_subvolume()
4031 root->root_key.objectid); in btrfs_delete_subvolume()
4050 ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true); in btrfs_delete_subvolume()
4054 trans = btrfs_start_transaction(root, 0); in btrfs_delete_subvolume()
4113 btrfs_subvolume_release_metadata(root, &block_rsv); in btrfs_delete_subvolume()
4143 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_rmdir() local
4168 err = btrfs_unlink_inode(trans, root, BTRFS_I(dir), in btrfs_rmdir()
4189 btrfs_btree_balance_dirty(root->fs_info); in btrfs_rmdir()
4212 struct btrfs_root *root, in btrfs_truncate_inode_items() argument
4216 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_truncate_inode_items()
4249 test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) in btrfs_truncate_inode_items()
4257 if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
4277 if (min_type == 0 && root == BTRFS_I(inode)->root) in btrfs_truncate_inode_items()
4296 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_truncate_inode_items()
4378 &root->state) && in btrfs_truncate_inode_items()
4394 &root->state)) in btrfs_truncate_inode_items()
4429 if (test_bit(BTRFS_ROOT_SHAREABLE, &root->state)) in btrfs_truncate_inode_items()
4438 if (root == BTRFS_I(inode)->root) { in btrfs_truncate_inode_items()
4470 root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
4477 ref.real_root = root->root_key.objectid; in btrfs_truncate_inode_items()
4498 ret = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
4536 err = btrfs_del_items(trans, root, path, pending_del_slot, in btrfs_truncate_inode_items()
4543 if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) { in btrfs_truncate_inode_items()
4705 static int maybe_insert_hole(struct btrfs_root *root, struct inode *inode, in maybe_insert_hole() argument
4718 BTRFS_I(inode)->last_sub_trans = root->log_transid; in maybe_insert_hole()
4719 BTRFS_I(inode)->last_log_commit = root->last_log_commit; in maybe_insert_hole()
4728 trans = btrfs_start_transaction(root, 3); in maybe_insert_hole()
4732 ret = btrfs_drop_extents(trans, root, inode, offset, offset + len, 1); in maybe_insert_hole()
4739 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(BTRFS_I(inode)), in maybe_insert_hole()
4744 btrfs_update_inode(trans, root, inode); in maybe_insert_hole()
4758 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_cont_expand() local
4800 err = maybe_insert_hole(root, inode, cur_offset, in btrfs_cont_expand()
4861 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_setsize() local
4889 btrfs_drew_write_lock(&root->snapshot_lock); in btrfs_setsize()
4892 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
4896 trans = btrfs_start_transaction(root, 1); in btrfs_setsize()
4898 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
4905 ret = btrfs_update_inode(trans, root, inode); in btrfs_setsize()
4906 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_setsize()
4946 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_setattr() local
4949 if (btrfs_root_readonly(root)) in btrfs_setattr()
5069 static struct btrfs_trans_handle *evict_refill_and_join(struct btrfs_root *root, in evict_refill_and_join() argument
5072 struct btrfs_fs_info *fs_info = root->fs_info; in evict_refill_and_join()
5091 ret = btrfs_block_rsv_refill(root, rsv, rsv->size + delayed_refs_extra, in evict_refill_and_join()
5107 trans = btrfs_join_transaction(root); in evict_refill_and_join()
5124 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_evict_inode() local
5130 if (!root) { in btrfs_evict_inode()
5138 ((btrfs_root_refs(&root->root_item) != 0 && in btrfs_evict_inode()
5139 root->root_key.objectid != BTRFS_ROOT_TREE_OBJECTID) || in btrfs_evict_inode()
5152 BUG_ON(btrfs_root_refs(&root->root_item) != 0 && in btrfs_evict_inode()
5153 root->root_key.objectid != BTRFS_ROOT_TREE_OBJECTID); in btrfs_evict_inode()
5170 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5176 ret = btrfs_truncate_inode_items(trans, root, inode, 0, 0); in btrfs_evict_inode()
5195 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5203 if (!(root == fs_info->tree_root || in btrfs_evict_inode()
5204 root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID)) in btrfs_evict_inode()
5205 btrfs_return_ino(root, btrfs_ino(BTRFS_I(inode))); in btrfs_evict_inode()
5233 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_inode_by_name() local
5240 di = btrfs_lookup_dir_item(NULL, root, path, btrfs_ino(BTRFS_I(dir)), in btrfs_inode_by_name()
5251 btrfs_warn(root->fs_info, in btrfs_inode_by_name()
5289 key.objectid = BTRFS_I(dir)->root->root_key.objectid; in fixup_tree_root_location()
5332 struct btrfs_root *root = BTRFS_I(inode)->root; in inode_tree_add() local
5342 spin_lock(&root->inode_lock); in inode_tree_add()
5343 p = &root->inode_tree.rb_node; in inode_tree_add()
5355 rb_replace_node(parent, new, &root->inode_tree); in inode_tree_add()
5357 spin_unlock(&root->inode_lock); in inode_tree_add()
5362 rb_insert_color(new, &root->inode_tree); in inode_tree_add()
5363 spin_unlock(&root->inode_lock); in inode_tree_add()
5368 struct btrfs_root *root = inode->root; in inode_tree_del() local
5371 spin_lock(&root->inode_lock); in inode_tree_del()
5373 rb_erase(&inode->rb_node, &root->inode_tree); in inode_tree_del()
5375 empty = RB_EMPTY_ROOT(&root->inode_tree); in inode_tree_del()
5377 spin_unlock(&root->inode_lock); in inode_tree_del()
5379 if (empty && btrfs_root_refs(&root->root_item) == 0) { in inode_tree_del()
5380 spin_lock(&root->inode_lock); in inode_tree_del()
5381 empty = RB_EMPTY_ROOT(&root->inode_tree); in inode_tree_del()
5382 spin_unlock(&root->inode_lock); in inode_tree_del()
5384 btrfs_add_dead_root(root); in inode_tree_del()
5397 BTRFS_I(inode)->root = btrfs_grab_root(args->root); in btrfs_init_locked_inode()
5398 BUG_ON(args->root && !BTRFS_I(inode)->root); in btrfs_init_locked_inode()
5407 args->root == BTRFS_I(inode)->root; in btrfs_find_actor()
5411 struct btrfs_root *root) in btrfs_iget_locked() argument
5415 unsigned long hashval = btrfs_inode_hash(ino, root); in btrfs_iget_locked()
5418 args.root = root; in btrfs_iget_locked()
5433 struct btrfs_root *root, struct btrfs_path *path) in btrfs_iget_path() argument
5437 inode = btrfs_iget_locked(s, ino, root); in btrfs_iget_path()
5464 struct inode *btrfs_iget(struct super_block *s, u64 ino, struct btrfs_root *root) in btrfs_iget() argument
5466 return btrfs_iget_path(s, ino, root, NULL); in btrfs_iget()
5471 struct btrfs_root *root) in new_simple_dir() argument
5478 BTRFS_I(inode)->root = btrfs_grab_root(root); in new_simple_dir()
5521 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_lookup_dentry() local
5522 struct btrfs_root *sub_root = root; in btrfs_lookup_dentry()
5535 inode = btrfs_iget(dir->i_sb, location.objectid, root); in btrfs_lookup_dentry()
5561 if (root != sub_root) in btrfs_lookup_dentry()
5564 if (!IS_ERR(inode) && root != sub_root) { in btrfs_lookup_dentry()
5580 struct btrfs_root *root; in btrfs_dentry_delete() local
5587 root = BTRFS_I(inode)->root; in btrfs_dentry_delete()
5588 if (btrfs_root_refs(&root->root_item) == 0) in btrfs_dentry_delete()
5660 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_real_readdir() local
5698 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_real_readdir()
5708 ret = btrfs_next_leaf(root, path); in btrfs_real_readdir()
5805 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_dirty_inode() local
5812 trans = btrfs_join_transaction(root); in btrfs_dirty_inode()
5816 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5820 trans = btrfs_start_transaction(root, 1); in btrfs_dirty_inode()
5824 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5840 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_update_time() local
5843 if (btrfs_root_readonly(root)) in btrfs_update_time()
5864 struct btrfs_root *root = inode->root; in btrfs_set_inode_index_count() local
5878 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in btrfs_set_inode_index_count()
5942 args.root = BTRFS_I(inode)->root; in btrfs_insert_inode_locked()
5945 btrfs_inode_hash(inode->i_ino, BTRFS_I(inode)->root), in btrfs_insert_inode_locked()
5981 struct btrfs_root *root, in btrfs_new_inode() argument
5987 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_new_inode()
6044 BTRFS_I(inode)->root = btrfs_grab_root(root); in btrfs_new_inode()
6088 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems); in btrfs_new_inode()
6133 btrfs_update_root_times(trans, root); in btrfs_new_inode()
6139 btrfs_ino(BTRFS_I(inode)), root->root_key.objectid, ret); in btrfs_new_inode()
6164 struct btrfs_root *root = parent_inode->root; in btrfs_add_link() local
6169 memcpy(&key, &inode->root->root_key, sizeof(key)); in btrfs_add_link()
6178 root->root_key.objectid, parent_ino, in btrfs_add_link()
6181 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino, in btrfs_add_link()
6207 if (!test_bit(BTRFS_FS_LOG_RECOVERING, &root->fs_info->flags)) { in btrfs_add_link()
6213 ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode); in btrfs_add_link()
6223 root->root_key.objectid, parent_ino, in btrfs_add_link()
6231 err = btrfs_del_inode_ref(trans, root, name, name_len, in btrfs_add_link()
6258 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_mknod() local
6269 trans = btrfs_start_transaction(root, 5); in btrfs_mknod()
6273 err = btrfs_find_free_objectid(root, &objectid); in btrfs_mknod()
6277 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mknod()
6304 btrfs_update_inode(trans, root, inode); in btrfs_mknod()
6322 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_create() local
6333 trans = btrfs_start_transaction(root, 5); in btrfs_create()
6337 err = btrfs_find_free_objectid(root, &objectid); in btrfs_create()
6341 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_create()
6363 err = btrfs_update_inode(trans, root, inode); in btrfs_create()
6388 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_link() local
6396 if (root->root_key.objectid != BTRFS_I(inode)->root->root_key.objectid) in btrfs_link()
6412 trans = btrfs_start_transaction(root, inode->i_nlink ? 5 : 6); in btrfs_link()
6435 err = btrfs_update_inode(trans, root, inode); in btrfs_link()
6467 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_mkdir() local
6477 trans = btrfs_start_transaction(root, 5); in btrfs_mkdir()
6481 err = btrfs_find_free_objectid(root, &objectid); in btrfs_mkdir()
6485 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mkdir()
6503 err = btrfs_update_inode(trans, root, inode); in btrfs_mkdir()
6593 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_get_extent()
6600 struct btrfs_root *root = inode->root; in btrfs_get_extent() local
6647 ret = btrfs_lookup_file_extent(NULL, root, path, objectid, start, 0); in btrfs_get_extent()
6697 ret = btrfs_next_leaf(root, path); in btrfs_get_extent()
6794 trace_btrfs_get_extent(root, inode, em); in btrfs_get_extent()
6968 struct btrfs_root *root = inode->root; in btrfs_new_extent_direct() local
6969 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_new_extent_direct()
6976 ret = btrfs_reserve_extent(root, len, len, fs_info->sectorsize, in btrfs_new_extent_direct()
7023 struct btrfs_root *root = BTRFS_I(inode)->root; in can_nocow_extent() local
7039 ret = btrfs_lookup_file_extent(NULL, root, path, in can_nocow_extent()
7097 btrfs_root_last_snapshot(&root->root_item))) in can_nocow_extent()
7116 root->fs_info->sectorsize) - 1; in can_nocow_extent()
7132 ret = btrfs_cross_ref_exist(root, btrfs_ino(BTRFS_I(inode)), in can_nocow_extent()
7655 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_check_read_dio_bio()
7707 struct btrfs_fs_info *fs_info = inode->root->fs_info; in __endio_write_update_ordered()
7760 btrfs_warn(BTRFS_I(dip->inode)->root->fs_info, in btrfs_end_dio_bio()
8491 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_truncate() local
8543 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8565 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate()
8572 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8579 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8606 trans = btrfs_start_transaction(root, 1); in btrfs_truncate()
8618 ret2 = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8680 ei->root = NULL; in btrfs_alloc_inode()
8748 struct btrfs_root *root = inode->root; in btrfs_destroy_inode() local
8765 if (!root) in btrfs_destroy_inode()
8773 btrfs_err(root->fs_info, in btrfs_destroy_inode()
8785 btrfs_put_root(inode->root); in btrfs_destroy_inode()
8790 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_drop_inode() local
8792 if (root == NULL) in btrfs_drop_inode()
8796 if (btrfs_root_refs(&root->root_item) == 0) in btrfs_drop_inode()
8888 stat->dev = BTRFS_I(inode)->root->anon_dev; in btrfs_getattr()
8905 struct btrfs_root *root = BTRFS_I(old_dir)->root; in btrfs_rename_exchange() local
8906 struct btrfs_root *dest = BTRFS_I(new_dir)->root; in btrfs_rename_exchange()
8925 if (root != dest && in btrfs_rename_exchange()
8943 trans = btrfs_start_transaction(root, 12); in btrfs_rename_exchange()
8949 if (dest != root) in btrfs_rename_exchange()
8987 ret = btrfs_insert_inode_ref(trans, root, in btrfs_rename_exchange()
9032 btrfs_pin_log_trans(root); in btrfs_rename_exchange()
9044 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), in btrfs_rename_exchange()
9049 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename_exchange()
9096 btrfs_end_log_trans(root); in btrfs_rename_exchange()
9126 btrfs_end_log_trans(root); in btrfs_rename_exchange()
9145 struct btrfs_root *root, in btrfs_whiteout_for_rename() argument
9154 ret = btrfs_find_free_objectid(root, &objectid); in btrfs_whiteout_for_rename()
9158 inode = btrfs_new_inode(trans, root, dir, in btrfs_whiteout_for_rename()
9185 ret = btrfs_update_inode(trans, root, inode); in btrfs_whiteout_for_rename()
9202 struct btrfs_root *root = BTRFS_I(old_dir)->root; in btrfs_rename() local
9203 struct btrfs_root *dest = BTRFS_I(new_dir)->root; in btrfs_rename()
9216 if (old_ino != BTRFS_FIRST_FREE_OBJECTID && root != dest) in btrfs_rename()
9271 trans = btrfs_start_transaction(root, trans_num_items); in btrfs_rename()
9277 if (dest != root) in btrfs_rename()
9329 btrfs_pin_log_trans(root); in btrfs_rename()
9331 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), in btrfs_rename()
9336 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename()
9379 btrfs_end_log_trans(root); in btrfs_rename()
9384 ret = btrfs_whiteout_for_rename(trans, root, old_dir, in btrfs_rename()
9412 btrfs_end_log_trans(root); in btrfs_rename()
9482 static int start_delalloc_inodes(struct btrfs_root *root, in start_delalloc_inodes() argument
9497 mutex_lock(&root->delalloc_mutex); in start_delalloc_inodes()
9498 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
9499 list_splice_init(&root->delalloc_inodes, &splice); in start_delalloc_inodes()
9505 &root->delalloc_inodes); in start_delalloc_inodes()
9513 cond_resched_lock(&root->delalloc_lock); in start_delalloc_inodes()
9516 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
9529 btrfs_queue_work(root->fs_info->flush_workers, in start_delalloc_inodes()
9542 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
9544 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
9554 spin_lock(&root->delalloc_lock); in start_delalloc_inodes()
9555 list_splice_tail(&splice, &root->delalloc_inodes); in start_delalloc_inodes()
9556 spin_unlock(&root->delalloc_lock); in start_delalloc_inodes()
9558 mutex_unlock(&root->delalloc_mutex); in start_delalloc_inodes()
9562 int btrfs_start_delalloc_snapshot(struct btrfs_root *root) in btrfs_start_delalloc_snapshot() argument
9570 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_start_delalloc_snapshot()
9575 return start_delalloc_inodes(root, &wbc, true, false); in btrfs_start_delalloc_snapshot()
9587 struct btrfs_root *root; in btrfs_start_delalloc_roots() local
9607 root = list_first_entry(&splice, struct btrfs_root, in btrfs_start_delalloc_roots()
9609 root = btrfs_grab_root(root); in btrfs_start_delalloc_roots()
9610 BUG_ON(!root); in btrfs_start_delalloc_roots()
9611 list_move_tail(&root->delalloc_root, in btrfs_start_delalloc_roots()
9615 ret = start_delalloc_inodes(root, &wbc, false, in_reclaim_context); in btrfs_start_delalloc_roots()
9616 btrfs_put_root(root); in btrfs_start_delalloc_roots()
9639 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_symlink() local
9663 trans = btrfs_start_transaction(root, 7); in btrfs_symlink()
9667 err = btrfs_find_free_objectid(root, &objectid); in btrfs_symlink()
9671 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_symlink()
9703 err = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_symlink()
9729 err = btrfs_update_inode(trans, root, inode); in btrfs_symlink()
9820 struct btrfs_root *root = BTRFS_I(inode)->root; in __btrfs_prealloc_file_range() local
9843 ret = btrfs_reserve_extent(root, cur_bytes, cur_bytes, in __btrfs_prealloc_file_range()
9923 ret = btrfs_update_inode(trans, root, inode); in __btrfs_prealloc_file_range()
9968 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_permission() local
9973 if (btrfs_root_readonly(root)) in btrfs_permission()
9985 struct btrfs_root *root = BTRFS_I(dir)->root; in btrfs_tmpfile() local
9994 trans = btrfs_start_transaction(root, 5); in btrfs_tmpfile()
9998 ret = btrfs_find_free_objectid(root, &objectid); in btrfs_tmpfile()
10002 inode = btrfs_new_inode(trans, root, dir, NULL, 0, in btrfs_tmpfile()
10019 ret = btrfs_update_inode(trans, root, inode); in btrfs_tmpfile()
10070 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_add_swapfile_pin()
10111 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_free_swapfile_pins()
10191 atomic_dec(&BTRFS_I(inode)->root->nr_swapfiles); in btrfs_swap_deactivate()
10198 struct btrfs_root *root = BTRFS_I(inode)->root; in btrfs_swap_activate() local
10199 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_swap_activate()
10258 if (!btrfs_drew_try_write_lock(&root->snapshot_lock)) { in btrfs_swap_activate()
10274 spin_lock(&root->root_item_lock); in btrfs_swap_activate()
10275 if (btrfs_root_dead(root)) { in btrfs_swap_activate()
10276 spin_unlock(&root->root_item_lock); in btrfs_swap_activate()
10281 root->root_key.objectid); in btrfs_swap_activate()
10284 atomic_inc(&root->nr_swapfiles); in btrfs_swap_activate()
10285 spin_unlock(&root->root_item_lock); in btrfs_swap_activate()
10431 btrfs_drew_write_unlock(&root->snapshot_lock); in btrfs_swap_activate()