Symbol: zone_info
drivers/scsi/sd.h
98
struct zoned_disk_info zone_info;
drivers/scsi/sd_zbc.c
181
nr_zones = min(nr_zones, sdkp->zone_info.nr_zones);
drivers/scsi/sd_zbc.c
206
return logical_to_sectors(sdkp->device, sdkp->zone_info.zone_blocks);
drivers/scsi/sd_zbc.c
524
if (sdkp->capacity & (sdkp->zone_info.zone_blocks - 1))
drivers/scsi/sd_zbc.c
527
sdkp->zone_info.nr_zones - 1,
drivers/scsi/sd_zbc.c
528
sdkp->zone_info.zone_blocks);
drivers/scsi/sd_zbc.c
532
sdkp->zone_info.nr_zones,
drivers/scsi/sd_zbc.c
533
sdkp->zone_info.zone_blocks);
drivers/scsi/sd_zbc.c
557
if (sdkp->zone_info.zone_blocks == zone_blocks &&
drivers/scsi/sd_zbc.c
558
sdkp->zone_info.nr_zones == nr_zones &&
drivers/scsi/sd_zbc.c
562
sdkp->zone_info.zone_blocks = zone_blocks;
drivers/scsi/sd_zbc.c
563
sdkp->zone_info.nr_zones = nr_zones;
drivers/scsi/sd_zbc.c
569
sdkp->zone_info = (struct zoned_disk_info){ };
fs/btrfs/volumes.c
1035
if (orig_dev->zone_info) {
fs/btrfs/volumes.c
1036
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/volumes.c
1038
zone_info = btrfs_clone_dev_zone_info(orig_dev);
fs/btrfs/volumes.c
1039
if (!zone_info) {
fs/btrfs/volumes.c
1044
device->zone_info = zone_info;
fs/btrfs/volumes.c
1686
u64 zone_size = device->zone_info->zone_size;
fs/btrfs/volumes.c
1829
WARN_ON(device->zone_info &&
fs/btrfs/volumes.c
1830
!IS_ALIGNED(num_bytes, device->zone_info->zone_size));
fs/btrfs/volumes.c
5649
u64 zone_size = devices_info[0].dev->zone_info->zone_size;
fs/btrfs/volumes.c
8307
if (dev->zone_info) {
fs/btrfs/volumes.c
8308
u64 zone_size = dev->zone_info->zone_size;
fs/btrfs/volumes.h
136
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/zoned.c
1055
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
1115
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
1116
unsigned int zno = (pos >> zone_info->zone_size_shift);
fs/btrfs/zoned.c
1119
if (zone_info->max_active_zones == 0)
fs/btrfs/zoned.c
1122
if (!test_bit(zno, zone_info->active_zones)) {
fs/btrfs/zoned.c
1124
if (atomic_dec_if_positive(&zone_info->active_zones_left) < 0)
fs/btrfs/zoned.c
1126
if (test_and_set_bit(zno, zone_info->active_zones)) {
fs/btrfs/zoned.c
1128
atomic_inc(&zone_info->active_zones_left);
fs/btrfs/zoned.c
1137
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
1138
unsigned int zno = (pos >> zone_info->zone_size_shift);
fs/btrfs/zoned.c
1141
if (zone_info->max_active_zones == 0)
fs/btrfs/zoned.c
1144
if (test_and_clear_bit(zno, zone_info->active_zones))
fs/btrfs/zoned.c
1145
atomic_inc(&zone_info->active_zones_left);
fs/btrfs/zoned.c
1166
physical += device->zone_info->zone_size;
fs/btrfs/zoned.c
1167
length -= device->zone_info->zone_size;
fs/btrfs/zoned.c
1175
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
1309
struct zone_info *info, unsigned long *active,
fs/btrfs/zoned.c
1331
if (!device->zone_info->max_active_zones)
fs/btrfs/zoned.c
1337
info->capacity = device->zone_info->zone_size;
fs/btrfs/zoned.c
1394
(info->physical >> device->zone_info->zone_size_shift),
fs/btrfs/zoned.c
1417
struct zone_info *info,
fs/btrfs/zoned.c
1436
struct zone_info *zone_info,
fs/btrfs/zoned.c
1447
bg->zone_capacity = min_not_zero(zone_info[0].capacity, zone_info[1].capacity);
fs/btrfs/zoned.c
1449
if (unlikely(zone_info[0].alloc_offset == WP_MISSING_DEV)) {
fs/btrfs/zoned.c
1452
zone_info[0].physical);
fs/btrfs/zoned.c
1455
if (unlikely(zone_info[1].alloc_offset == WP_MISSING_DEV)) {
fs/btrfs/zoned.c
1458
zone_info[1].physical);
fs/btrfs/zoned.c
1468
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1470
if (last_alloc <= zone_info[i].alloc_offset) {
fs/btrfs/zoned.c
1471
last_alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1476
if (zone_info[0].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1477
zone_info[0].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1479
if (zone_info[1].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1480
zone_info[1].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1482
if (unlikely(zone_info[0].alloc_offset != zone_info[1].alloc_offset)) {
fs/btrfs/zoned.c
1495
bg->alloc_offset = zone_info[0].alloc_offset;
fs/btrfs/zoned.c
1501
struct zone_info *zone_info,
fs/btrfs/zoned.c
1515
bg->zone_capacity = min_not_zero(zone_info[0].capacity, zone_info[1].capacity);
fs/btrfs/zoned.c
1523
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1524
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1526
if (last_alloc <= zone_info[i].alloc_offset) {
fs/btrfs/zoned.c
1527
last_alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1533
if (zone_info[i].alloc_offset == WP_MISSING_DEV)
fs/btrfs/zoned.c
1536
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1537
zone_info[i].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1539
if (unlikely((zone_info[0].alloc_offset != zone_info[i].alloc_offset) &&
fs/btrfs/zoned.c
1557
if (zone_info[0].alloc_offset != WP_MISSING_DEV)
fs/btrfs/zoned.c
1558
bg->alloc_offset = zone_info[0].alloc_offset;
fs/btrfs/zoned.c
1560
bg->alloc_offset = zone_info[i - 1].alloc_offset;
fs/btrfs/zoned.c
1567
struct zone_info *zone_info,
fs/btrfs/zoned.c
1591
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1592
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1595
stripe_nr = zone_info[i].alloc_offset >> BTRFS_STRIPE_LEN_SHIFT;
fs/btrfs/zoned.c
1596
stripe_offset = zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK;
fs/btrfs/zoned.c
1606
if (zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK)
fs/btrfs/zoned.c
1621
if (zone_info[i].alloc_offset == WP_MISSING_DEV)
fs/btrfs/zoned.c
1624
if (zone_info[i].alloc_offset == WP_CONVENTIONAL) {
fs/btrfs/zoned.c
1626
zone_info[i].alloc_offset = btrfs_stripe_nr_to_offset(stripe_nr);
fs/btrfs/zoned.c
1629
zone_info[i].alloc_offset += BTRFS_STRIPE_LEN;
fs/btrfs/zoned.c
1631
zone_info[i].alloc_offset += stripe_offset;
fs/btrfs/zoned.c
1636
if (unlikely(prev_offset < zone_info[i].alloc_offset)) {
fs/btrfs/zoned.c
1644
(zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK))) {
fs/btrfs/zoned.c
1651
prev_offset = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1653
if ((zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK) != 0)
fs/btrfs/zoned.c
1663
bg->zone_capacity += zone_info[i].capacity;
fs/btrfs/zoned.c
1664
bg->alloc_offset += zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1668
if (unlikely(zone_info[0].alloc_offset -
fs/btrfs/zoned.c
1669
zone_info[map->num_stripes - 1].alloc_offset > BTRFS_STRIPE_LEN)) {
fs/btrfs/zoned.c
1685
struct zone_info *zone_info,
fs/btrfs/zoned.c
1713
u64 alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1718
if (zone_info[idx].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1719
zone_info[idx].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1722
alloc = zone_info[idx].alloc_offset;
fs/btrfs/zoned.c
1723
} else if (unlikely(zone_info[idx].alloc_offset != alloc)) {
fs/btrfs/zoned.c
1801
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1802
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1803
zone_info[i].alloc_offset = raid0_allocs[idx];
fs/btrfs/zoned.c
1813
bg->zone_capacity += zone_info[i].capacity;
fs/btrfs/zoned.c
1814
bg->alloc_offset += zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1819
if (unlikely(zone_info[0].alloc_offset -
fs/btrfs/zoned.c
1820
zone_info[map->num_stripes - 1].alloc_offset > BTRFS_STRIPE_LEN)) {
fs/btrfs/zoned.c
1838
struct zone_info *zone_info,
fs/btrfs/zoned.c
1848
ret = btrfs_load_block_group_single(bg, &zone_info[0], active);
fs/btrfs/zoned.c
1851
ret = btrfs_load_block_group_dup(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1856
ret = btrfs_load_block_group_raid1(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1859
ret = btrfs_load_block_group_raid0(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1862
ret = btrfs_load_block_group_raid10(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
189
struct btrfs_zoned_device_info *zone_info)
fs/btrfs/zoned.c
1897
struct zone_info AUTO_KFREE(zone_info);
fs/btrfs/zoned.c
191
return (u64)zone_number << zone_info->zone_size_shift;
fs/btrfs/zoned.c
1921
zone_info = kcalloc(map->num_stripes, sizeof(*zone_info), GFP_NOFS);
fs/btrfs/zoned.c
1922
if (!zone_info) {
fs/btrfs/zoned.c
1934
ret = btrfs_load_zone_info(fs_info, i, &zone_info[i], active, map, new);
fs/btrfs/zoned.c
1938
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1962
ret = btrfs_load_block_group_by_raid_type(cache, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
227
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
2415
zinfo = device->zone_info;
fs/btrfs/zoned.c
2485
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
254
struct blk_zone *zone_info;
fs/btrfs/zoned.c
256
zone_info = &zinfo->zone_cache[zno + i];
fs/btrfs/zoned.c
257
if (!zone_info->len)
fs/btrfs/zoned.c
2647
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
2867
if (device->zone_info) {
fs/btrfs/zoned.c
2868
vfree(device->zone_info->zone_cache);
fs/btrfs/zoned.c
2869
device->zone_info->zone_cache = NULL;
fs/btrfs/zoned.c
3055
device->zone_info->reserved_active_zones =
fs/btrfs/zoned.c
3070
map->stripes[i].dev->zone_info->reserved_active_zones--;
fs/btrfs/zoned.c
360
struct btrfs_zoned_device_info *zone_info = NULL;
fs/btrfs/zoned.c
379
if (device->zone_info)
fs/btrfs/zoned.c
382
zone_info = kzalloc_obj(*zone_info);
fs/btrfs/zoned.c
383
if (!zone_info)
fs/btrfs/zoned.c
386
device->zone_info = zone_info;
fs/btrfs/zoned.c
402
zone_info->zone_size = zone_sectors << SECTOR_SHIFT;
fs/btrfs/zoned.c
405
if (zone_info->zone_size > BTRFS_MAX_ZONE_SIZE) {
fs/btrfs/zoned.c
409
zone_info->zone_size, BTRFS_MAX_ZONE_SIZE);
fs/btrfs/zoned.c
412
} else if (zone_info->zone_size < BTRFS_MIN_ZONE_SIZE) {
fs/btrfs/zoned.c
416
zone_info->zone_size, BTRFS_MIN_ZONE_SIZE);
fs/btrfs/zoned.c
422
zone_info->zone_size_shift = ilog2(zone_info->zone_size);
fs/btrfs/zoned.c
423
zone_info->nr_zones = nr_sectors >> ilog2(zone_sectors);
fs/btrfs/zoned.c
425
zone_info->nr_zones++;
fs/btrfs/zoned.c
429
if (!max_active_zones && zone_info->nr_zones > BTRFS_DEFAULT_MAX_ACTIVE_ZONES)
fs/btrfs/zoned.c
439
zone_info->max_active_zones = max_active_zones;
fs/btrfs/zoned.c
441
zone_info->seq_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
442
if (!zone_info->seq_zones) {
fs/btrfs/zoned.c
447
zone_info->empty_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
448
if (!zone_info->empty_zones) {
fs/btrfs/zoned.c
453
zone_info->active_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
454
if (!zone_info->active_zones) {
fs/btrfs/zoned.c
471
zone_info->zone_cache = vcalloc(zone_info->nr_zones,
fs/btrfs/zoned.c
473
if (!zone_info->zone_cache) {
fs/btrfs/zoned.c
493
__set_bit(nreported, zone_info->seq_zones);
fs/btrfs/zoned.c
496
__set_bit(nreported, zone_info->empty_zones);
fs/btrfs/zoned.c
502
__set_bit(nreported, zone_info->active_zones);
fs/btrfs/zoned.c
511
if (unlikely(nreported != zone_info->nr_zones)) {
fs/btrfs/zoned.c
515
zone_info->nr_zones);
fs/btrfs/zoned.c
524
zone_info->max_active_zones = 0;
fs/btrfs/zoned.c
534
atomic_set(&zone_info->active_zones_left,
fs/btrfs/zoned.c
547
sb_zone = sb_zone_number(zone_info->zone_size_shift, i);
fs/btrfs/zoned.c
548
if (sb_zone + 1 >= zone_info->nr_zones)
fs/btrfs/zoned.c
552
zone_start_physical(sb_zone, zone_info),
fs/btrfs/zoned.c
553
&zone_info->sb_zones[sb_pos],
fs/btrfs/zoned.c
570
if (zone_info->sb_zones[BTRFS_NR_SB_LOG_ZONES * i].type ==
fs/btrfs/zoned.c
575
&zone_info->sb_zones[sb_pos], &sb_wp);
fs/btrfs/zoned.c
598
model, rcu_dereference(device->name), zone_info->nr_zones,
fs/btrfs/zoned.c
599
emulated, zone_info->zone_size);
fs/btrfs/zoned.c
611
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
613
if (!zone_info)
fs/btrfs/zoned.c
616
bitmap_free(zone_info->active_zones);
fs/btrfs/zoned.c
617
bitmap_free(zone_info->seq_zones);
fs/btrfs/zoned.c
618
bitmap_free(zone_info->empty_zones);
fs/btrfs/zoned.c
619
vfree(zone_info->zone_cache);
fs/btrfs/zoned.c
620
kfree(zone_info);
fs/btrfs/zoned.c
621
device->zone_info = NULL;
fs/btrfs/zoned.c
626
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/zoned.c
628
zone_info = kmemdup(orig_dev->zone_info, sizeof(*zone_info), GFP_KERNEL);
fs/btrfs/zoned.c
629
if (!zone_info)
fs/btrfs/zoned.c
632
zone_info->seq_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
633
if (!zone_info->seq_zones)
fs/btrfs/zoned.c
636
bitmap_copy(zone_info->seq_zones, orig_dev->zone_info->seq_zones,
fs/btrfs/zoned.c
637
zone_info->nr_zones);
fs/btrfs/zoned.c
639
zone_info->empty_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
640
if (!zone_info->empty_zones)
fs/btrfs/zoned.c
643
bitmap_copy(zone_info->empty_zones, orig_dev->zone_info->empty_zones,
fs/btrfs/zoned.c
644
zone_info->nr_zones);
fs/btrfs/zoned.c
646
zone_info->active_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
647
if (!zone_info->active_zones)
fs/btrfs/zoned.c
650
bitmap_copy(zone_info->active_zones, orig_dev->zone_info->active_zones,
fs/btrfs/zoned.c
651
zone_info->nr_zones);
fs/btrfs/zoned.c
652
zone_info->zone_cache = NULL;
fs/btrfs/zoned.c
654
return zone_info;
fs/btrfs/zoned.c
657
bitmap_free(zone_info->seq_zones);
fs/btrfs/zoned.c
658
bitmap_free(zone_info->empty_zones);
fs/btrfs/zoned.c
659
bitmap_free(zone_info->active_zones);
fs/btrfs/zoned.c
660
kfree(zone_info);
fs/btrfs/zoned.c
709
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
715
zone_size = zone_info->zone_size;
fs/btrfs/zoned.c
716
} else if (zone_info->zone_size != zone_size) {
fs/btrfs/zoned.c
719
zone_info->zone_size, zone_size);
fs/btrfs/zoned.c
918
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
961
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.h
103
struct zone_info;
fs/btrfs/zoned.h
107
struct zone_info *zone_info,
fs/btrfs/zoned.h
299
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.h
301
if (!zone_info)
fs/btrfs/zoned.h
304
return test_bit(pos >> zone_info->zone_size_shift, zone_info->seq_zones);
fs/btrfs/zoned.h
309
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.h
311
if (!zone_info)
fs/btrfs/zoned.h
314
return test_bit(pos >> zone_info->zone_size_shift, zone_info->empty_zones);
fs/btrfs/zoned.h
320
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.h
323
if (!zone_info)
fs/btrfs/zoned.h
326
zno = pos >> zone_info->zone_size_shift;
fs/btrfs/zoned.h
328
set_bit(zno, zone_info->empty_zones);
fs/btrfs/zoned.h
330
clear_bit(zno, zone_info->empty_zones);
fs/btrfs/zoned.h
368
return device->zone_info == NULL || !btrfs_dev_is_sequential(device, pos);
fs/btrfs/zoned.h
379
zone_size = device->zone_info->zone_size;