Lines Matching refs:disk

60 	if (!rq->q->disk->seq_zones_wlock)
71 if (test_and_set_bit(zno, rq->q->disk->seq_zones_wlock))
84 rq->q->disk->seq_zones_wlock)))
95 if (rq->q->disk->seq_zones_wlock)
97 rq->q->disk->seq_zones_wlock));
141 struct gendisk *disk = bdev->bd_disk;
142 sector_t capacity = get_capacity(disk);
144 if (!bdev_is_zoned(bdev) || WARN_ON_ONCE(!disk->fops->report_zones))
150 return disk->fops->report_zones(disk, sector, nr_zones, cb, data);
183 struct gendisk *disk = bdev->bd_disk;
191 need_reset = blk_alloc_zone_bitmap(disk->queue->node, disk->nr_zones);
195 ret = disk->fops->report_zones(disk, 0, disk->nr_zones,
202 if (!test_bit(disk_zone_no(disk, sector), need_reset)) {
245 * @sector..@sector+@nr_sectors. Specifying the entire disk sector range
432 void disk_free_zone_bitmaps(struct gendisk *disk)
434 kfree(disk->conv_zones_bitmap);
435 disk->conv_zones_bitmap = NULL;
436 kfree(disk->seq_zones_wlock);
437 disk->seq_zones_wlock = NULL;
441 struct gendisk *disk;
455 struct gendisk *disk = args->disk;
456 struct request_queue *q = disk->queue;
457 sector_t capacity = get_capacity(disk);
463 disk->disk_name, args->sector, zone->start);
469 disk->disk_name, zone->start, zone->len);
480 disk->disk_name);
485 disk->disk_name);
511 disk->disk_name, (int)zone->type, zone->start);
521 * @disk: Target disk
522 * @update_driver_data: Callback to update driver data on the frozen disk
525 * initialize a disk request queue zone bitmaps. This functions should normally
526 * be called within the disk ->revalidate method for blk-mq based drivers.
530 * only need to set disk->nr_zones so that the sysfs exposed value is correct.
535 int blk_revalidate_disk_zones(struct gendisk *disk,
536 void (*update_driver_data)(struct gendisk *disk))
538 struct request_queue *q = disk->queue;
540 sector_t capacity = get_capacity(disk);
559 disk->disk_name, zone_sectors);
565 disk->disk_name);
573 args.disk = disk;
576 ret = disk->fops->report_zones(disk, 0, UINT_MAX,
579 pr_warn("%s: No zones reported\n", disk->disk_name);
585 * If zones where reported, make sure that the entire disk capacity
590 disk->disk_name, args.sector);
601 disk->nr_zones = args.nr_zones;
602 swap(disk->seq_zones_wlock, args.seq_zones_wlock);
603 swap(disk->conv_zones_bitmap, args.conv_zones_bitmap);
605 update_driver_data(disk);
608 pr_warn("%s: failed to revalidate zones\n", disk->disk_name);
609 disk_free_zone_bitmaps(disk);
619 void disk_clear_zone_settings(struct gendisk *disk)
621 struct request_queue *q = disk->queue;
625 disk_free_zone_bitmaps(disk);
628 disk->nr_zones = 0;
629 disk->max_open_zones = 0;
630 disk->max_active_zones = 0;