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/tests/zoned-tests.c
45
struct zone_info AUTO_KFREE(zone_info);
fs/btrfs/tests/zoned-tests.c
61
zone_info = kzalloc_objs(*zone_info, test->num_stripes, GFP_KERNEL);
fs/btrfs/tests/zoned-tests.c
62
if (!zone_info) {
fs/btrfs/tests/zoned-tests.c
68
if (!zone_info) {
fs/btrfs/tests/zoned-tests.c
78
zone_info[i].physical = 0;
fs/btrfs/tests/zoned-tests.c
79
zone_info[i].alloc_offset = test->alloc_offsets[i];
fs/btrfs/tests/zoned-tests.c
80
zone_info[i].capacity = ZONE_SIZE;
fs/btrfs/tests/zoned-tests.c
81
if (zone_info[i].alloc_offset && zone_info[i].alloc_offset < ZONE_SIZE)
fs/btrfs/tests/zoned-tests.c
89
ret = btrfs_load_block_group_by_raid_type(bg, map, zone_info, active,
fs/btrfs/volumes.c
1041
if (orig_dev->zone_info) {
fs/btrfs/volumes.c
1042
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/volumes.c
1044
zone_info = btrfs_clone_dev_zone_info(orig_dev);
fs/btrfs/volumes.c
1045
if (!zone_info) {
fs/btrfs/volumes.c
1050
device->zone_info = zone_info;
fs/btrfs/volumes.c
1692
u64 zone_size = device->zone_info->zone_size;
fs/btrfs/volumes.c
1835
WARN_ON(device->zone_info &&
fs/btrfs/volumes.c
1836
!IS_ALIGNED(num_bytes, device->zone_info->zone_size));
fs/btrfs/volumes.c
5898
u64 zone_size = devices_info[0].dev->zone_info->zone_size;
fs/btrfs/volumes.c
8618
if (dev->zone_info) {
fs/btrfs/volumes.c
8619
u64 zone_size = dev->zone_info->zone_size;
fs/btrfs/volumes.h
137
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/zoned.c
1071
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
1131
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
1132
unsigned int zno = (pos >> zone_info->zone_size_shift);
fs/btrfs/zoned.c
1135
if (zone_info->max_active_zones == 0)
fs/btrfs/zoned.c
1138
if (!test_bit(zno, zone_info->active_zones)) {
fs/btrfs/zoned.c
1140
if (atomic_dec_if_positive(&zone_info->active_zones_left) < 0)
fs/btrfs/zoned.c
1142
if (test_and_set_bit(zno, zone_info->active_zones)) {
fs/btrfs/zoned.c
1144
atomic_inc(&zone_info->active_zones_left);
fs/btrfs/zoned.c
1153
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
1154
unsigned int zno = (pos >> zone_info->zone_size_shift);
fs/btrfs/zoned.c
1157
if (zone_info->max_active_zones == 0)
fs/btrfs/zoned.c
1160
if (test_and_clear_bit(zno, zone_info->active_zones))
fs/btrfs/zoned.c
1161
atomic_inc(&zone_info->active_zones_left);
fs/btrfs/zoned.c
1182
physical += device->zone_info->zone_size;
fs/btrfs/zoned.c
1183
length -= device->zone_info->zone_size;
fs/btrfs/zoned.c
1191
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
1325
struct zone_info *info, unsigned long *active,
fs/btrfs/zoned.c
1347
if (!device->zone_info->max_active_zones)
fs/btrfs/zoned.c
1353
info->capacity = device->zone_info->zone_size;
fs/btrfs/zoned.c
1410
(info->physical >> device->zone_info->zone_size_shift),
fs/btrfs/zoned.c
1433
struct zone_info *info,
fs/btrfs/zoned.c
1452
struct zone_info *zone_info,
fs/btrfs/zoned.c
1463
bg->zone_capacity = min_not_zero(zone_info[0].capacity, zone_info[1].capacity);
fs/btrfs/zoned.c
1465
if (unlikely(zone_info[0].alloc_offset == WP_MISSING_DEV)) {
fs/btrfs/zoned.c
1468
zone_info[0].physical);
fs/btrfs/zoned.c
1471
if (unlikely(zone_info[1].alloc_offset == WP_MISSING_DEV)) {
fs/btrfs/zoned.c
1474
zone_info[1].physical);
fs/btrfs/zoned.c
1484
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1486
if (last_alloc <= zone_info[i].alloc_offset) {
fs/btrfs/zoned.c
1487
last_alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1492
if (zone_info[0].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1493
zone_info[0].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1495
if (zone_info[1].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1496
zone_info[1].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1498
if (unlikely(zone_info[0].alloc_offset != zone_info[1].alloc_offset)) {
fs/btrfs/zoned.c
1511
bg->alloc_offset = zone_info[0].alloc_offset;
fs/btrfs/zoned.c
1517
struct zone_info *zone_info,
fs/btrfs/zoned.c
1531
bg->zone_capacity = min_not_zero(zone_info[0].capacity, zone_info[1].capacity);
fs/btrfs/zoned.c
1539
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1540
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1542
if (last_alloc <= zone_info[i].alloc_offset) {
fs/btrfs/zoned.c
1543
last_alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1549
if (zone_info[i].alloc_offset == WP_MISSING_DEV)
fs/btrfs/zoned.c
1552
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1553
zone_info[i].alloc_offset = last_alloc;
fs/btrfs/zoned.c
1555
if (unlikely((zone_info[0].alloc_offset != zone_info[i].alloc_offset) &&
fs/btrfs/zoned.c
1573
if (zone_info[0].alloc_offset != WP_MISSING_DEV)
fs/btrfs/zoned.c
1574
bg->alloc_offset = zone_info[0].alloc_offset;
fs/btrfs/zoned.c
1576
bg->alloc_offset = zone_info[i - 1].alloc_offset;
fs/btrfs/zoned.c
1583
struct zone_info *zone_info,
fs/btrfs/zoned.c
1607
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1608
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1611
stripe_nr = zone_info[i].alloc_offset >> BTRFS_STRIPE_LEN_SHIFT;
fs/btrfs/zoned.c
1612
stripe_offset = zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK;
fs/btrfs/zoned.c
1622
if (zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK)
fs/btrfs/zoned.c
1637
if (zone_info[i].alloc_offset == WP_MISSING_DEV)
fs/btrfs/zoned.c
1640
if (zone_info[i].alloc_offset == WP_CONVENTIONAL) {
fs/btrfs/zoned.c
1642
zone_info[i].alloc_offset = btrfs_stripe_nr_to_offset(stripe_nr);
fs/btrfs/zoned.c
1645
zone_info[i].alloc_offset += BTRFS_STRIPE_LEN;
fs/btrfs/zoned.c
1647
zone_info[i].alloc_offset += stripe_offset;
fs/btrfs/zoned.c
1652
if (unlikely(prev_offset < zone_info[i].alloc_offset)) {
fs/btrfs/zoned.c
1660
(zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK))) {
fs/btrfs/zoned.c
1667
prev_offset = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1669
if ((zone_info[i].alloc_offset & BTRFS_STRIPE_LEN_MASK) != 0)
fs/btrfs/zoned.c
1679
bg->zone_capacity += zone_info[i].capacity;
fs/btrfs/zoned.c
1680
bg->alloc_offset += zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1684
if (unlikely(zone_info[0].alloc_offset -
fs/btrfs/zoned.c
1685
zone_info[map->num_stripes - 1].alloc_offset > BTRFS_STRIPE_LEN)) {
fs/btrfs/zoned.c
1701
struct zone_info *zone_info,
fs/btrfs/zoned.c
1728
u64 alloc = zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1733
if (zone_info[idx].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1734
zone_info[idx].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1737
alloc = zone_info[idx].alloc_offset;
fs/btrfs/zoned.c
1738
} else if (unlikely(zone_info[idx].alloc_offset != alloc)) {
fs/btrfs/zoned.c
1816
if (zone_info[i].alloc_offset == WP_MISSING_DEV ||
fs/btrfs/zoned.c
1817
zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1818
zone_info[i].alloc_offset = raid0_allocs[idx];
fs/btrfs/zoned.c
1828
bg->zone_capacity += zone_info[i].capacity;
fs/btrfs/zoned.c
1829
bg->alloc_offset += zone_info[i].alloc_offset;
fs/btrfs/zoned.c
1834
if (unlikely(zone_info[0].alloc_offset -
fs/btrfs/zoned.c
1835
zone_info[map->num_stripes - 1].alloc_offset > BTRFS_STRIPE_LEN)) {
fs/btrfs/zoned.c
1853
struct zone_info *zone_info,
fs/btrfs/zoned.c
1863
ret = btrfs_load_block_group_single(bg, &zone_info[0], active);
fs/btrfs/zoned.c
1866
ret = btrfs_load_block_group_dup(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1871
ret = btrfs_load_block_group_raid1(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1874
ret = btrfs_load_block_group_raid0(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
1877
ret = btrfs_load_block_group_raid10(bg, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
191
struct btrfs_zoned_device_info *zone_info)
fs/btrfs/zoned.c
1912
struct zone_info AUTO_KFREE(zone_info);
fs/btrfs/zoned.c
193
return (u64)zone_number << zone_info->zone_size_shift;
fs/btrfs/zoned.c
1936
zone_info = kzalloc_objs(*zone_info, map->num_stripes, GFP_NOFS);
fs/btrfs/zoned.c
1937
if (!zone_info) {
fs/btrfs/zoned.c
1949
ret = btrfs_load_zone_info(fs_info, i, &zone_info[i], active, map, new);
fs/btrfs/zoned.c
1953
if (zone_info[i].alloc_offset == WP_CONVENTIONAL)
fs/btrfs/zoned.c
1977
ret = btrfs_load_block_group_by_raid_type(cache, map, zone_info, active, last_alloc);
fs/btrfs/zoned.c
229
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
2446
zinfo = device->zone_info;
fs/btrfs/zoned.c
2516
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
256
struct blk_zone *zone_info;
fs/btrfs/zoned.c
258
zone_info = &zinfo->zone_cache[zno + i];
fs/btrfs/zoned.c
259
if (!zone_info->len)
fs/btrfs/zoned.c
2678
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
2889
if (device->zone_info) {
fs/btrfs/zoned.c
2890
vfree(device->zone_info->zone_cache);
fs/btrfs/zoned.c
2891
device->zone_info->zone_cache = NULL;
fs/btrfs/zoned.c
3077
device->zone_info->reserved_active_zones =
fs/btrfs/zoned.c
3092
map->stripes[i].dev->zone_info->reserved_active_zones--;
fs/btrfs/zoned.c
360
struct btrfs_zoned_device_info *zone_info)
fs/btrfs/zoned.c
365
if (unlikely(zone_info->nr_zones < BTRFS_MIN_ACTIVE_ZONES)) {
fs/btrfs/zoned.c
367
zone_info->nr_zones, BTRFS_MIN_ACTIVE_ZONES);
fs/btrfs/zoned.c
374
max_active_zones = min(zone_info->nr_zones / 4,
fs/btrfs/zoned.c
377
zone_info->max_active_zones = max(max_active_zones, BTRFS_MIN_ACTIVE_ZONES);
fs/btrfs/zoned.c
384
struct btrfs_zoned_device_info *zone_info = NULL;
fs/btrfs/zoned.c
402
if (device->zone_info)
fs/btrfs/zoned.c
405
zone_info = kzalloc_obj(*zone_info);
fs/btrfs/zoned.c
406
if (!zone_info)
fs/btrfs/zoned.c
409
device->zone_info = zone_info;
fs/btrfs/zoned.c
425
zone_info->zone_size = zone_sectors << SECTOR_SHIFT;
fs/btrfs/zoned.c
428
if (zone_info->zone_size > BTRFS_MAX_ZONE_SIZE) {
fs/btrfs/zoned.c
432
zone_info->zone_size, BTRFS_MAX_ZONE_SIZE);
fs/btrfs/zoned.c
435
} else if (zone_info->zone_size < BTRFS_MIN_ZONE_SIZE) {
fs/btrfs/zoned.c
439
zone_info->zone_size, BTRFS_MIN_ZONE_SIZE);
fs/btrfs/zoned.c
445
zone_info->zone_size_shift = ilog2(zone_info->zone_size);
fs/btrfs/zoned.c
446
zone_info->nr_zones = nr_sectors >> ilog2(zone_sectors);
fs/btrfs/zoned.c
448
zone_info->nr_zones++;
fs/btrfs/zoned.c
450
ret = btrfs_get_max_active_zones(device, zone_info);
fs/btrfs/zoned.c
454
zone_info->seq_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
455
if (!zone_info->seq_zones) {
fs/btrfs/zoned.c
460
zone_info->empty_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
461
if (!zone_info->empty_zones) {
fs/btrfs/zoned.c
466
zone_info->active_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
467
if (!zone_info->active_zones) {
fs/btrfs/zoned.c
484
zone_info->zone_cache = vcalloc(zone_info->nr_zones,
fs/btrfs/zoned.c
486
if (!zone_info->zone_cache) {
fs/btrfs/zoned.c
506
__set_bit(nreported, zone_info->seq_zones);
fs/btrfs/zoned.c
509
__set_bit(nreported, zone_info->empty_zones);
fs/btrfs/zoned.c
515
__set_bit(nreported, zone_info->active_zones);
fs/btrfs/zoned.c
524
if (unlikely(nreported != zone_info->nr_zones)) {
fs/btrfs/zoned.c
528
zone_info->nr_zones);
fs/btrfs/zoned.c
533
if (unlikely(nactive > zone_info->max_active_zones)) {
fs/btrfs/zoned.c
538
zone_info->max_active_zones);
fs/btrfs/zoned.c
549
zone_info->max_active_zones = 0;
fs/btrfs/zoned.c
551
atomic_set(&zone_info->active_zones_left,
fs/btrfs/zoned.c
552
zone_info->max_active_zones - nactive);
fs/btrfs/zoned.c
563
sb_zone = sb_zone_number(zone_info->zone_size_shift, i);
fs/btrfs/zoned.c
564
if (sb_zone + 1 >= zone_info->nr_zones)
fs/btrfs/zoned.c
568
zone_start_physical(sb_zone, zone_info),
fs/btrfs/zoned.c
569
&zone_info->sb_zones[sb_pos],
fs/btrfs/zoned.c
586
if (zone_info->sb_zones[BTRFS_NR_SB_LOG_ZONES * i].type ==
fs/btrfs/zoned.c
591
&zone_info->sb_zones[sb_pos], &sb_wp);
fs/btrfs/zoned.c
614
model, rcu_dereference(device->name), zone_info->nr_zones,
fs/btrfs/zoned.c
615
emulated, zone_info->zone_size);
fs/btrfs/zoned.c
627
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
629
if (!zone_info)
fs/btrfs/zoned.c
632
bitmap_free(zone_info->active_zones);
fs/btrfs/zoned.c
633
bitmap_free(zone_info->seq_zones);
fs/btrfs/zoned.c
634
bitmap_free(zone_info->empty_zones);
fs/btrfs/zoned.c
635
vfree(zone_info->zone_cache);
fs/btrfs/zoned.c
636
kfree(zone_info);
fs/btrfs/zoned.c
637
device->zone_info = NULL;
fs/btrfs/zoned.c
642
struct btrfs_zoned_device_info *zone_info;
fs/btrfs/zoned.c
644
zone_info = kmemdup(orig_dev->zone_info, sizeof(*zone_info), GFP_KERNEL);
fs/btrfs/zoned.c
645
if (!zone_info)
fs/btrfs/zoned.c
648
zone_info->seq_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
649
if (!zone_info->seq_zones)
fs/btrfs/zoned.c
652
bitmap_copy(zone_info->seq_zones, orig_dev->zone_info->seq_zones,
fs/btrfs/zoned.c
653
zone_info->nr_zones);
fs/btrfs/zoned.c
655
zone_info->empty_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
656
if (!zone_info->empty_zones)
fs/btrfs/zoned.c
659
bitmap_copy(zone_info->empty_zones, orig_dev->zone_info->empty_zones,
fs/btrfs/zoned.c
660
zone_info->nr_zones);
fs/btrfs/zoned.c
662
zone_info->active_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL);
fs/btrfs/zoned.c
663
if (!zone_info->active_zones)
fs/btrfs/zoned.c
666
bitmap_copy(zone_info->active_zones, orig_dev->zone_info->active_zones,
fs/btrfs/zoned.c
667
zone_info->nr_zones);
fs/btrfs/zoned.c
668
zone_info->zone_cache = NULL;
fs/btrfs/zoned.c
670
return zone_info;
fs/btrfs/zoned.c
673
bitmap_free(zone_info->seq_zones);
fs/btrfs/zoned.c
674
bitmap_free(zone_info->empty_zones);
fs/btrfs/zoned.c
675
bitmap_free(zone_info->active_zones);
fs/btrfs/zoned.c
676
kfree(zone_info);
fs/btrfs/zoned.c
725
struct btrfs_zoned_device_info *zone_info = device->zone_info;
fs/btrfs/zoned.c
731
zone_size = zone_info->zone_size;
fs/btrfs/zoned.c
732
} else if (zone_info->zone_size != zone_size) {
fs/btrfs/zoned.c
735
zone_info->zone_size, zone_size);
fs/btrfs/zoned.c
934
struct btrfs_zoned_device_info *zinfo = device->zone_info;
fs/btrfs/zoned.c
977
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;