Lines Matching refs:fs_info
191 const sector_t zone_sectors = device->fs_info->zone_size >> SECTOR_SHIFT; in emulate_report_zones()
230 btrfs_err_in_rcu(device->fs_info, in btrfs_get_dev_zones()
244 static int calculate_emulated_zone_size(struct btrfs_fs_info *fs_info) in calculate_emulated_zone_size() argument
247 struct btrfs_root *root = fs_info->dev_root; in calculate_emulated_zone_size()
278 fs_info->zone_size = btrfs_dev_extent_length(leaf, dext); in calculate_emulated_zone_size()
287 int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info) in btrfs_get_dev_zone_info_all_devices() argument
289 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in btrfs_get_dev_zone_info_all_devices()
294 if (!btrfs_fs_incompat(fs_info, ZONED)) in btrfs_get_dev_zone_info_all_devices()
314 struct btrfs_fs_info *fs_info = device->fs_info; in btrfs_get_dev_zone_info() local
332 if (!btrfs_fs_incompat(fs_info, ZONED)) in btrfs_get_dev_zone_info()
343 if (!fs_info->zone_size) { in btrfs_get_dev_zone_info()
344 ret = calculate_emulated_zone_size(fs_info); in btrfs_get_dev_zone_info()
349 ASSERT(fs_info->zone_size); in btrfs_get_dev_zone_info()
350 zone_sectors = fs_info->zone_size >> SECTOR_SHIFT; in btrfs_get_dev_zone_info()
361 btrfs_err_in_rcu(fs_info, in btrfs_get_dev_zone_info()
377 btrfs_err_in_rcu(fs_info, in btrfs_get_dev_zone_info()
439 btrfs_err_in_rcu(device->fs_info, in btrfs_get_dev_zone_info()
449 btrfs_err_in_rcu(device->fs_info, in btrfs_get_dev_zone_info()
479 btrfs_err_in_rcu(device->fs_info, in btrfs_get_dev_zone_info()
497 btrfs_err_in_rcu(device->fs_info, in btrfs_get_dev_zone_info()
525 btrfs_err_in_rcu(fs_info, "zoned: unsupported model %d on %s", in btrfs_get_dev_zone_info()
532 btrfs_info_in_rcu(fs_info, in btrfs_get_dev_zone_info()
578 int btrfs_check_zoned_mode(struct btrfs_fs_info *fs_info) in btrfs_check_zoned_mode() argument
580 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in btrfs_check_zoned_mode()
585 const bool incompat_zoned = btrfs_fs_incompat(fs_info, ZONED); in btrfs_check_zoned_mode()
613 btrfs_err(fs_info, in btrfs_check_zoned_mode()
629 btrfs_err(fs_info, in btrfs_check_zoned_mode()
636 btrfs_err(fs_info, in btrfs_check_zoned_mode()
643 btrfs_err(fs_info, in btrfs_check_zoned_mode()
655 btrfs_err(fs_info, in btrfs_check_zoned_mode()
662 if (btrfs_fs_incompat(fs_info, MIXED_GROUPS)) { in btrfs_check_zoned_mode()
663 btrfs_err(fs_info, "zoned: mixed block groups not supported"); in btrfs_check_zoned_mode()
668 fs_info->zone_size = zone_size; in btrfs_check_zoned_mode()
669 fs_info->fs_devices->chunk_alloc_policy = BTRFS_CHUNK_ALLOC_ZONED; in btrfs_check_zoned_mode()
675 ret = btrfs_check_mountopts_zoned(fs_info); in btrfs_check_zoned_mode()
679 btrfs_info(fs_info, "zoned mode enabled with zone size %llu", zone_size); in btrfs_check_zoned_mode()
1083 device->fs_info, in btrfs_ensure_empty_zones()
1106 struct btrfs_fs_info *fs_info = cache->fs_info; in calculate_alloc_pointer() local
1107 struct btrfs_root *root = fs_info->extent_root; in calculate_alloc_pointer()
1143 length = fs_info->nodesize; in calculate_alloc_pointer()
1160 struct btrfs_fs_info *fs_info = cache->fs_info; in btrfs_load_block_group_zone_info() local
1161 struct extent_map_tree *em_tree = &fs_info->mapping_tree; in btrfs_load_block_group_zone_info()
1177 if (!btrfs_is_zoned(fs_info)) in btrfs_load_block_group_zone_info()
1181 if (!IS_ALIGNED(length, fs_info->zone_size)) { in btrfs_load_block_group_zone_info()
1182 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1184 logical, length, fs_info->zone_size); in btrfs_load_block_group_zone_info()
1225 struct btrfs_dev_replace *dev_replace = &fs_info->dev_replace; in btrfs_load_block_group_zone_info()
1263 WARN_ON(!IS_ALIGNED(physical, fs_info->zone_size)); in btrfs_load_block_group_zone_info()
1276 btrfs_err_in_rcu(fs_info, in btrfs_load_block_group_zone_info()
1289 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1344 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1354 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1372 btrfs_err(fs_info, "zoned: profile %s not yet supported", in btrfs_load_block_group_zone_info()
1380 spin_lock(&fs_info->zone_active_bgs_lock); in btrfs_load_block_group_zone_info()
1381 list_add_tail(&cache->active_bg_list, &fs_info->zone_active_bgs); in btrfs_load_block_group_zone_info()
1382 spin_unlock(&fs_info->zone_active_bgs_lock); in btrfs_load_block_group_zone_info()
1386 if (cache->alloc_offset > fs_info->zone_size) { in btrfs_load_block_group_zone_info()
1387 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1394 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1403 btrfs_err(fs_info, in btrfs_load_block_group_zone_info()
1428 if (!btrfs_is_zoned(cache->fs_info)) in btrfs_calc_zone_unusable()
1446 struct btrfs_fs_info *fs_info = eb->fs_info; in btrfs_redirty_list_add() local
1448 if (!btrfs_is_zoned(fs_info) || in btrfs_redirty_list_add()
1481 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_use_zone_append() local
1485 if (!btrfs_is_zoned(fs_info)) in btrfs_use_zone_append()
1502 cache = btrfs_lookup_block_group(fs_info, start); in btrfs_use_zone_append()
1535 struct btrfs_fs_info *fs_info = inode->root->fs_info; in btrfs_rewrite_logical_zoned() local
1548 if (WARN_ON(btrfs_rmap_block(fs_info, orig_logical, ordered->bdev, in btrfs_rewrite_logical_zoned()
1579 bool btrfs_check_meta_write_pointer(struct btrfs_fs_info *fs_info, in btrfs_check_meta_write_pointer() argument
1586 if (!btrfs_is_zoned(fs_info)) in btrfs_check_meta_write_pointer()
1599 cache = btrfs_lookup_block_group(fs_info, eb->start); in btrfs_check_meta_write_pointer()
1619 if (!btrfs_is_zoned(eb->fs_info) || !cache) in btrfs_revert_meta_write_pointer()
1635 static int read_zone_info(struct btrfs_fs_info *fs_info, u64 logical, in read_zone_info() argument
1644 ret = btrfs_map_sblock(fs_info, BTRFS_MAP_GET_READ_MIRRORS, logical, in read_zone_info()
1683 struct btrfs_fs_info *fs_info = tgt_dev->fs_info; in btrfs_sync_zone_write_pointer() local
1692 ret = read_zone_info(fs_info, logical, &zone); in btrfs_sync_zone_write_pointer()
1708 struct btrfs_device *btrfs_zoned_get_device(struct btrfs_fs_info *fs_info, in btrfs_zoned_get_device() argument
1715 em = btrfs_get_chunk_map(fs_info, logical, length); in btrfs_zoned_get_device()
1738 struct btrfs_fs_info *fs_info = block_group->fs_info; in btrfs_zone_activate() local
1744 if (!btrfs_is_zoned(block_group->fs_info)) in btrfs_zone_activate()
1783 spin_lock(&fs_info->zone_active_bgs_lock); in btrfs_zone_activate()
1785 list_add_tail(&block_group->active_bg_list, &fs_info->zone_active_bgs); in btrfs_zone_activate()
1786 spin_unlock(&fs_info->zone_active_bgs_lock); in btrfs_zone_activate()
1797 struct btrfs_fs_info *fs_info = block_group->fs_info; in btrfs_zone_finish() local
1803 if (!btrfs_is_zoned(fs_info)) in btrfs_zone_finish()
1838 btrfs_wait_ordered_roots(fs_info, U64_MAX, block_group->start, in btrfs_zone_finish()
1875 spin_lock(&fs_info->zone_active_bgs_lock); in btrfs_zone_finish()
1878 spin_unlock(&fs_info->zone_active_bgs_lock); in btrfs_zone_finish()
1892 if (!btrfs_is_zoned(fs_devices->fs_info)) in btrfs_can_activate_zone()
1918 void btrfs_zone_finish_endio(struct btrfs_fs_info *fs_info, u64 logical, u64 length) in btrfs_zone_finish_endio() argument
1925 if (!btrfs_is_zoned(fs_info)) in btrfs_zone_finish_endio()
1928 block_group = btrfs_lookup_block_group(fs_info, logical); in btrfs_zone_finish_endio()
1958 spin_lock(&fs_info->zone_active_bgs_lock); in btrfs_zone_finish_endio()
1961 spin_unlock(&fs_info->zone_active_bgs_lock); in btrfs_zone_finish_endio()
1971 struct btrfs_fs_info *fs_info = bg->fs_info; in btrfs_clear_data_reloc_bg() local
1973 spin_lock(&fs_info->relocation_bg_lock); in btrfs_clear_data_reloc_bg()
1974 if (fs_info->data_reloc_bg == bg->start) in btrfs_clear_data_reloc_bg()
1975 fs_info->data_reloc_bg = 0; in btrfs_clear_data_reloc_bg()
1976 spin_unlock(&fs_info->relocation_bg_lock); in btrfs_clear_data_reloc_bg()