• Home
  • Raw
  • Download

Lines Matching refs:root

55 static void btrfs_destroy_ordered_extents(struct btrfs_root *root);
58 static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root);
787 struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info; in btrfs_wq_submit_bio()
816 struct btrfs_root *root; in btree_csum_one_bio() local
822 root = BTRFS_I(bvec->bv_page->mapping->host)->root; in btree_csum_one_bio()
823 ret = csum_dirty_buffer(root->fs_info, bvec); in btree_csum_one_bio()
927 fs_info = BTRFS_I(mapping->host)->root->fs_info; in btree_writepages()
954 btrfs_warn(BTRFS_I(page->mapping->host)->root->fs_info, in btree_invalidatepage()
1076 static void __setup_root(struct btrfs_root *root, struct btrfs_fs_info *fs_info, in __setup_root() argument
1080 root->fs_info = fs_info; in __setup_root()
1081 root->node = NULL; in __setup_root()
1082 root->commit_root = NULL; in __setup_root()
1083 root->state = 0; in __setup_root()
1084 root->orphan_cleanup_state = 0; in __setup_root()
1086 root->last_trans = 0; in __setup_root()
1087 root->free_objectid = 0; in __setup_root()
1088 root->nr_delalloc_inodes = 0; in __setup_root()
1089 root->nr_ordered_extents = 0; in __setup_root()
1090 root->inode_tree = RB_ROOT; in __setup_root()
1091 INIT_RADIX_TREE(&root->delayed_nodes_tree, GFP_ATOMIC); in __setup_root()
1092 root->block_rsv = NULL; in __setup_root()
1094 INIT_LIST_HEAD(&root->dirty_list); in __setup_root()
1095 INIT_LIST_HEAD(&root->root_list); in __setup_root()
1096 INIT_LIST_HEAD(&root->delalloc_inodes); in __setup_root()
1097 INIT_LIST_HEAD(&root->delalloc_root); in __setup_root()
1098 INIT_LIST_HEAD(&root->ordered_extents); in __setup_root()
1099 INIT_LIST_HEAD(&root->ordered_root); in __setup_root()
1100 INIT_LIST_HEAD(&root->reloc_dirty_list); in __setup_root()
1101 INIT_LIST_HEAD(&root->logged_list[0]); in __setup_root()
1102 INIT_LIST_HEAD(&root->logged_list[1]); in __setup_root()
1103 spin_lock_init(&root->inode_lock); in __setup_root()
1104 spin_lock_init(&root->delalloc_lock); in __setup_root()
1105 spin_lock_init(&root->ordered_extent_lock); in __setup_root()
1106 spin_lock_init(&root->accounting_lock); in __setup_root()
1107 spin_lock_init(&root->log_extents_lock[0]); in __setup_root()
1108 spin_lock_init(&root->log_extents_lock[1]); in __setup_root()
1109 spin_lock_init(&root->qgroup_meta_rsv_lock); in __setup_root()
1110 mutex_init(&root->objectid_mutex); in __setup_root()
1111 mutex_init(&root->log_mutex); in __setup_root()
1112 mutex_init(&root->ordered_extent_mutex); in __setup_root()
1113 mutex_init(&root->delalloc_mutex); in __setup_root()
1114 init_waitqueue_head(&root->qgroup_flush_wait); in __setup_root()
1115 init_waitqueue_head(&root->log_writer_wait); in __setup_root()
1116 init_waitqueue_head(&root->log_commit_wait[0]); in __setup_root()
1117 init_waitqueue_head(&root->log_commit_wait[1]); in __setup_root()
1118 INIT_LIST_HEAD(&root->log_ctxs[0]); in __setup_root()
1119 INIT_LIST_HEAD(&root->log_ctxs[1]); in __setup_root()
1120 atomic_set(&root->log_commit[0], 0); in __setup_root()
1121 atomic_set(&root->log_commit[1], 0); in __setup_root()
1122 atomic_set(&root->log_writers, 0); in __setup_root()
1123 atomic_set(&root->log_batch, 0); in __setup_root()
1124 refcount_set(&root->refs, 1); in __setup_root()
1125 atomic_set(&root->snapshot_force_cow, 0); in __setup_root()
1126 atomic_set(&root->nr_swapfiles, 0); in __setup_root()
1127 root->log_transid = 0; in __setup_root()
1128 root->log_transid_committed = -1; in __setup_root()
1129 root->last_log_commit = 0; in __setup_root()
1131 extent_io_tree_init(fs_info, &root->dirty_log_pages, in __setup_root()
1133 extent_io_tree_init(fs_info, &root->log_csum_range, in __setup_root()
1137 memset(&root->root_key, 0, sizeof(root->root_key)); in __setup_root()
1138 memset(&root->root_item, 0, sizeof(root->root_item)); in __setup_root()
1139 memset(&root->defrag_progress, 0, sizeof(root->defrag_progress)); in __setup_root()
1140 root->root_key.objectid = objectid; in __setup_root()
1141 root->anon_dev = 0; in __setup_root()
1143 spin_lock_init(&root->root_item_lock); in __setup_root()
1144 btrfs_qgroup_init_swapped_blocks(&root->swapped_blocks); in __setup_root()
1146 INIT_LIST_HEAD(&root->leak_list); in __setup_root()
1148 list_add_tail(&root->leak_list, &fs_info->allocated_roots); in __setup_root()
1156 struct btrfs_root *root = kzalloc(sizeof(*root), flags); in btrfs_alloc_root() local
1157 if (root) in btrfs_alloc_root()
1158 __setup_root(root, fs_info, objectid); in btrfs_alloc_root()
1159 return root; in btrfs_alloc_root()
1166 struct btrfs_root *root; in btrfs_alloc_dummy_root() local
1171 root = btrfs_alloc_root(fs_info, BTRFS_ROOT_TREE_OBJECTID, GFP_KERNEL); in btrfs_alloc_dummy_root()
1172 if (!root) in btrfs_alloc_dummy_root()
1176 root->alloc_bytenr = 0; in btrfs_alloc_dummy_root()
1178 return root; in btrfs_alloc_dummy_root()
1188 struct btrfs_root *root; in btrfs_create_tree() local
1198 root = btrfs_alloc_root(fs_info, objectid, GFP_KERNEL); in btrfs_create_tree()
1200 if (!root) in btrfs_create_tree()
1203 root->root_key.objectid = objectid; in btrfs_create_tree()
1204 root->root_key.type = BTRFS_ROOT_ITEM_KEY; in btrfs_create_tree()
1205 root->root_key.offset = 0; in btrfs_create_tree()
1207 leaf = btrfs_alloc_tree_block(trans, root, 0, objectid, NULL, 0, 0, 0, in btrfs_create_tree()
1215 root->node = leaf; in btrfs_create_tree()
1218 root->commit_root = btrfs_root_node(root); in btrfs_create_tree()
1219 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_create_tree()
1221 btrfs_set_root_flags(&root->root_item, 0); in btrfs_create_tree()
1222 btrfs_set_root_limit(&root->root_item, 0); in btrfs_create_tree()
1223 btrfs_set_root_bytenr(&root->root_item, leaf->start); in btrfs_create_tree()
1224 btrfs_set_root_generation(&root->root_item, trans->transid); in btrfs_create_tree()
1225 btrfs_set_root_level(&root->root_item, 0); in btrfs_create_tree()
1226 btrfs_set_root_refs(&root->root_item, 1); in btrfs_create_tree()
1227 btrfs_set_root_used(&root->root_item, leaf->len); in btrfs_create_tree()
1228 btrfs_set_root_last_snapshot(&root->root_item, 0); in btrfs_create_tree()
1229 btrfs_set_root_dirid(&root->root_item, 0); in btrfs_create_tree()
1231 generate_random_guid(root->root_item.uuid); in btrfs_create_tree()
1233 export_guid(root->root_item.uuid, &guid_null); in btrfs_create_tree()
1234 btrfs_set_root_drop_level(&root->root_item, 0); in btrfs_create_tree()
1241 ret = btrfs_insert_root(trans, tree_root, &key, &root->root_item); in btrfs_create_tree()
1245 return root; in btrfs_create_tree()
1251 btrfs_put_root(root); in btrfs_create_tree()
1259 struct btrfs_root *root; in alloc_log_tree() local
1261 root = btrfs_alloc_root(fs_info, BTRFS_TREE_LOG_OBJECTID, GFP_NOFS); in alloc_log_tree()
1262 if (!root) in alloc_log_tree()
1265 root->root_key.objectid = BTRFS_TREE_LOG_OBJECTID; in alloc_log_tree()
1266 root->root_key.type = BTRFS_ROOT_ITEM_KEY; in alloc_log_tree()
1267 root->root_key.offset = BTRFS_TREE_LOG_OBJECTID; in alloc_log_tree()
1269 return root; in alloc_log_tree()
1273 struct btrfs_root *root) in btrfs_alloc_log_tree_node() argument
1287 leaf = btrfs_alloc_tree_block(trans, root, 0, BTRFS_TREE_LOG_OBJECTID, in btrfs_alloc_log_tree_node()
1292 root->node = leaf; in btrfs_alloc_log_tree_node()
1294 btrfs_mark_buffer_dirty(root->node); in btrfs_alloc_log_tree_node()
1295 btrfs_tree_unlock(root->node); in btrfs_alloc_log_tree_node()
1324 struct btrfs_root *root) in btrfs_add_log_tree() argument
1326 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_add_log_tree()
1342 log_root->root_key.offset = root->root_key.objectid; in btrfs_add_log_tree()
1354 WARN_ON(root->log_root); in btrfs_add_log_tree()
1355 root->log_root = log_root; in btrfs_add_log_tree()
1356 root->log_transid = 0; in btrfs_add_log_tree()
1357 root->log_transid_committed = -1; in btrfs_add_log_tree()
1358 root->last_log_commit = 0; in btrfs_add_log_tree()
1366 struct btrfs_root *root; in read_tree_root_path() local
1372 root = btrfs_alloc_root(fs_info, key->objectid, GFP_NOFS); in read_tree_root_path()
1373 if (!root) in read_tree_root_path()
1377 &root->root_item, &root->root_key); in read_tree_root_path()
1384 generation = btrfs_root_generation(&root->root_item); in read_tree_root_path()
1385 level = btrfs_root_level(&root->root_item); in read_tree_root_path()
1386 root->node = read_tree_block(fs_info, in read_tree_root_path()
1387 btrfs_root_bytenr(&root->root_item), in read_tree_root_path()
1389 if (IS_ERR(root->node)) { in read_tree_root_path()
1390 ret = PTR_ERR(root->node); in read_tree_root_path()
1391 root->node = NULL; in read_tree_root_path()
1393 } else if (!btrfs_buffer_uptodate(root->node, generation, 0)) { in read_tree_root_path()
1397 root->commit_root = btrfs_root_node(root); in read_tree_root_path()
1398 return root; in read_tree_root_path()
1400 btrfs_put_root(root); in read_tree_root_path()
1407 struct btrfs_root *root; in btrfs_read_tree_root() local
1413 root = read_tree_root_path(tree_root, path, key); in btrfs_read_tree_root()
1416 return root; in btrfs_read_tree_root()
1424 static int btrfs_init_fs_root(struct btrfs_root *root, dev_t anon_dev) in btrfs_init_fs_root() argument
1434 ret = btrfs_drew_lock_init(&root->snapshot_lock); in btrfs_init_fs_root()
1439 if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID && in btrfs_init_fs_root()
1440 !btrfs_is_data_reloc_root(root) && in btrfs_init_fs_root()
1441 is_fstree(root->root_key.objectid)) { in btrfs_init_fs_root()
1442 set_bit(BTRFS_ROOT_SHAREABLE, &root->state); in btrfs_init_fs_root()
1443 btrfs_check_and_init_root_item(&root->root_item); in btrfs_init_fs_root()
1450 if (is_fstree(root->root_key.objectid) && in btrfs_init_fs_root()
1451 btrfs_root_refs(&root->root_item) > 0) { in btrfs_init_fs_root()
1453 ret = get_anon_bdev(&root->anon_dev); in btrfs_init_fs_root()
1457 root->anon_dev = anon_dev; in btrfs_init_fs_root()
1461 mutex_lock(&root->objectid_mutex); in btrfs_init_fs_root()
1462 ret = btrfs_init_root_free_objectid(root); in btrfs_init_fs_root()
1464 mutex_unlock(&root->objectid_mutex); in btrfs_init_fs_root()
1468 ASSERT(root->free_objectid <= BTRFS_LAST_FREE_OBJECTID); in btrfs_init_fs_root()
1470 mutex_unlock(&root->objectid_mutex); in btrfs_init_fs_root()
1481 struct btrfs_root *root; in btrfs_lookup_fs_root() local
1484 root = radix_tree_lookup(&fs_info->fs_roots_radix, in btrfs_lookup_fs_root()
1486 if (root) in btrfs_lookup_fs_root()
1487 root = btrfs_grab_root(root); in btrfs_lookup_fs_root()
1489 return root; in btrfs_lookup_fs_root()
1518 struct btrfs_root *root) in btrfs_insert_fs_root() argument
1528 (unsigned long)root->root_key.objectid, in btrfs_insert_fs_root()
1529 root); in btrfs_insert_fs_root()
1531 btrfs_grab_root(root); in btrfs_insert_fs_root()
1532 set_bit(BTRFS_ROOT_IN_RADIX, &root->state); in btrfs_insert_fs_root()
1543 struct btrfs_root *root; in btrfs_check_leaked_roots() local
1548 root = list_first_entry(&fs_info->allocated_roots, in btrfs_check_leaked_roots()
1551 btrfs_root_name(&root->root_key, buf), in btrfs_check_leaked_roots()
1552 refcount_read(&root->refs)); in btrfs_check_leaked_roots()
1553 while (refcount_read(&root->refs) > 1) in btrfs_check_leaked_roots()
1554 btrfs_put_root(root); in btrfs_check_leaked_roots()
1555 btrfs_put_root(root); in btrfs_check_leaked_roots()
1611 struct btrfs_root *root; in btrfs_get_root_ref() local
1616 root = btrfs_get_global_root(fs_info, objectid); in btrfs_get_root_ref()
1617 if (root) in btrfs_get_root_ref()
1618 return root; in btrfs_get_root_ref()
1620 root = btrfs_lookup_fs_root(fs_info, objectid); in btrfs_get_root_ref()
1621 if (root) { in btrfs_get_root_ref()
1633 if (check_ref && btrfs_root_refs(&root->root_item) == 0) { in btrfs_get_root_ref()
1634 btrfs_put_root(root); in btrfs_get_root_ref()
1637 return root; in btrfs_get_root_ref()
1643 root = btrfs_read_tree_root(fs_info->tree_root, &key); in btrfs_get_root_ref()
1644 if (IS_ERR(root)) in btrfs_get_root_ref()
1645 return root; in btrfs_get_root_ref()
1647 if (check_ref && btrfs_root_refs(&root->root_item) == 0) { in btrfs_get_root_ref()
1652 ret = btrfs_init_fs_root(root, anon_dev); in btrfs_get_root_ref()
1670 set_bit(BTRFS_ROOT_ORPHAN_ITEM_INSERTED, &root->state); in btrfs_get_root_ref()
1672 ret = btrfs_insert_fs_root(fs_info, root); in btrfs_get_root_ref()
1675 btrfs_put_root(root); in btrfs_get_root_ref()
1680 return root; in btrfs_get_root_ref()
1689 root->anon_dev = 0; in btrfs_get_root_ref()
1690 btrfs_put_root(root); in btrfs_get_root_ref()
1739 struct btrfs_root *root; in btrfs_get_fs_root_commit_root() local
1750 root = btrfs_get_global_root(fs_info, objectid); in btrfs_get_fs_root_commit_root()
1751 if (root) in btrfs_get_fs_root_commit_root()
1752 return root; in btrfs_get_fs_root_commit_root()
1754 root = btrfs_lookup_fs_root(fs_info, objectid); in btrfs_get_fs_root_commit_root()
1755 if (root) in btrfs_get_fs_root_commit_root()
1756 return root; in btrfs_get_fs_root_commit_root()
1761 root = read_tree_root_path(fs_info->tree_root, path, &key); in btrfs_get_fs_root_commit_root()
1764 return root; in btrfs_get_fs_root_commit_root()
1788 struct btrfs_root *root = arg; in cleaner_kthread() local
1789 struct btrfs_fs_info *fs_info = root->fs_info; in cleaner_kthread()
1822 again = btrfs_clean_one_deleted_snapshot(root); in cleaner_kthread()
1863 struct btrfs_root *root = arg; in transaction_kthread() local
1864 struct btrfs_fs_info *fs_info = root->fs_info; in transaction_kthread()
1897 trans = btrfs_attach_transaction(root); in transaction_kthread()
2100 static void free_root_extent_buffers(struct btrfs_root *root) in free_root_extent_buffers() argument
2102 if (root) { in free_root_extent_buffers()
2103 free_extent_buffer(root->node); in free_root_extent_buffers()
2104 free_extent_buffer(root->commit_root); in free_root_extent_buffers()
2105 root->node = NULL; in free_root_extent_buffers()
2106 root->commit_root = NULL; in free_root_extent_buffers()
2127 void btrfs_put_root(struct btrfs_root *root) in btrfs_put_root() argument
2129 if (!root) in btrfs_put_root()
2132 if (refcount_dec_and_test(&root->refs)) { in btrfs_put_root()
2133 WARN_ON(!RB_EMPTY_ROOT(&root->inode_tree)); in btrfs_put_root()
2134 WARN_ON(test_bit(BTRFS_ROOT_DEAD_RELOC_TREE, &root->state)); in btrfs_put_root()
2135 if (root->anon_dev) in btrfs_put_root()
2136 free_anon_bdev(root->anon_dev); in btrfs_put_root()
2137 btrfs_drew_lock_destroy(&root->snapshot_lock); in btrfs_put_root()
2138 free_root_extent_buffers(root); in btrfs_put_root()
2140 spin_lock(&root->fs_info->fs_roots_radix_lock); in btrfs_put_root()
2141 list_del_init(&root->leak_list); in btrfs_put_root()
2142 spin_unlock(&root->fs_info->fs_roots_radix_lock); in btrfs_put_root()
2144 kfree(root); in btrfs_put_root()
2217 BTRFS_I(inode)->root = btrfs_grab_root(fs_info->tree_root); in btrfs_init_btree_inode()
2406 struct btrfs_root *root; in btrfs_read_roots() local
2416 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2417 if (IS_ERR(root)) { in btrfs_read_roots()
2419 ret = PTR_ERR(root); in btrfs_read_roots()
2423 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2424 fs_info->extent_root = root; in btrfs_read_roots()
2428 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2429 if (IS_ERR(root)) { in btrfs_read_roots()
2431 ret = PTR_ERR(root); in btrfs_read_roots()
2435 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2436 fs_info->dev_root = root; in btrfs_read_roots()
2446 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2447 if (IS_ERR(root)) { in btrfs_read_roots()
2449 ret = PTR_ERR(root); in btrfs_read_roots()
2453 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2454 fs_info->csum_root = root; in btrfs_read_roots()
2462 root = btrfs_get_fs_root(tree_root->fs_info, in btrfs_read_roots()
2464 if (IS_ERR(root)) { in btrfs_read_roots()
2466 ret = PTR_ERR(root); in btrfs_read_roots()
2470 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2471 fs_info->data_reloc_root = root; in btrfs_read_roots()
2475 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2476 if (!IS_ERR(root)) { in btrfs_read_roots()
2477 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2479 fs_info->quota_root = root; in btrfs_read_roots()
2483 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2484 if (IS_ERR(root)) { in btrfs_read_roots()
2486 ret = PTR_ERR(root); in btrfs_read_roots()
2491 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2492 fs_info->uuid_root = root; in btrfs_read_roots()
2497 root = btrfs_read_tree_root(tree_root, &location); in btrfs_read_roots()
2498 if (IS_ERR(root)) { in btrfs_read_roots()
2500 ret = PTR_ERR(root); in btrfs_read_roots()
2504 set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); in btrfs_read_roots()
2505 fs_info->free_space_root = root; in btrfs_read_roots()
4245 struct btrfs_root *root) in btrfs_drop_and_free_fs_root() argument
4251 (unsigned long)root->root_key.objectid); in btrfs_drop_and_free_fs_root()
4252 if (test_and_clear_bit(BTRFS_ROOT_IN_RADIX, &root->state)) in btrfs_drop_and_free_fs_root()
4257 ASSERT(root->log_root == NULL); in btrfs_drop_and_free_fs_root()
4258 if (root->reloc_root) { in btrfs_drop_and_free_fs_root()
4259 btrfs_put_root(root->reloc_root); in btrfs_drop_and_free_fs_root()
4260 root->reloc_root = NULL; in btrfs_drop_and_free_fs_root()
4265 btrfs_put_root(root); in btrfs_drop_and_free_fs_root()
4320 struct btrfs_root *root = fs_info->tree_root; in btrfs_commit_super() local
4332 trans = btrfs_join_transaction(root); in btrfs_commit_super()
4656 static void btrfs_destroy_ordered_extents(struct btrfs_root *root) in btrfs_destroy_ordered_extents() argument
4660 spin_lock(&root->ordered_extent_lock); in btrfs_destroy_ordered_extents()
4665 list_for_each_entry(ordered, &root->ordered_extents, in btrfs_destroy_ordered_extents()
4668 spin_unlock(&root->ordered_extent_lock); in btrfs_destroy_ordered_extents()
4673 struct btrfs_root *root; in btrfs_destroy_all_ordered_extents() local
4681 root = list_first_entry(&splice, struct btrfs_root, in btrfs_destroy_all_ordered_extents()
4683 list_move_tail(&root->ordered_root, in btrfs_destroy_all_ordered_extents()
4687 btrfs_destroy_ordered_extents(root); in btrfs_destroy_all_ordered_extents()
4783 static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root) in btrfs_destroy_delalloc_inodes() argument
4790 spin_lock(&root->delalloc_lock); in btrfs_destroy_delalloc_inodes()
4791 list_splice_init(&root->delalloc_inodes, &splice); in btrfs_destroy_delalloc_inodes()
4797 __btrfs_del_delalloc_inode(root, btrfs_inode); in btrfs_destroy_delalloc_inodes()
4798 spin_unlock(&root->delalloc_lock); in btrfs_destroy_delalloc_inodes()
4813 spin_lock(&root->delalloc_lock); in btrfs_destroy_delalloc_inodes()
4815 spin_unlock(&root->delalloc_lock); in btrfs_destroy_delalloc_inodes()
4820 struct btrfs_root *root; in btrfs_destroy_all_delalloc_inodes() local
4828 root = list_first_entry(&splice, struct btrfs_root, in btrfs_destroy_all_delalloc_inodes()
4830 root = btrfs_grab_root(root); in btrfs_destroy_all_delalloc_inodes()
4831 BUG_ON(!root); in btrfs_destroy_all_delalloc_inodes()
4834 btrfs_destroy_delalloc_inodes(root); in btrfs_destroy_all_delalloc_inodes()
4835 btrfs_put_root(root); in btrfs_destroy_all_delalloc_inodes()
5063 int btrfs_init_root_free_objectid(struct btrfs_root *root) in btrfs_init_root_free_objectid() argument
5079 ret = btrfs_search_slot(NULL, root, &search_key, path, 0, 0); in btrfs_init_root_free_objectid()
5087 root->free_objectid = max_t(u64, found_key.objectid + 1, in btrfs_init_root_free_objectid()
5090 root->free_objectid = BTRFS_FIRST_FREE_OBJECTID; in btrfs_init_root_free_objectid()
5098 int btrfs_get_free_objectid(struct btrfs_root *root, u64 *objectid) in btrfs_get_free_objectid() argument
5101 mutex_lock(&root->objectid_mutex); in btrfs_get_free_objectid()
5103 if (unlikely(root->free_objectid >= BTRFS_LAST_FREE_OBJECTID)) { in btrfs_get_free_objectid()
5104 btrfs_warn(root->fs_info, in btrfs_get_free_objectid()
5106 root->root_key.objectid); in btrfs_get_free_objectid()
5111 *objectid = root->free_objectid++; in btrfs_get_free_objectid()
5114 mutex_unlock(&root->objectid_mutex); in btrfs_get_free_objectid()