Lines Matching refs:bdev

108 unsigned int bdev_nr_zones(struct block_device *bdev)  in bdev_nr_zones()  argument
110 sector_t zone_sectors = bdev_zone_sectors(bdev); in bdev_nr_zones()
112 if (!bdev_is_zoned(bdev)) in bdev_nr_zones()
114 return (bdev_nr_sectors(bdev) + zone_sectors - 1) >> in bdev_nr_zones()
138 int blkdev_report_zones(struct block_device *bdev, sector_t sector, in blkdev_report_zones() argument
141 struct gendisk *disk = bdev->bd_disk; in blkdev_report_zones()
144 if (!bdev_is_zoned(bdev) || WARN_ON_ONCE(!disk->fops->report_zones)) in blkdev_report_zones()
180 static int blkdev_zone_reset_all_emulated(struct block_device *bdev, in blkdev_zone_reset_all_emulated() argument
183 struct gendisk *disk = bdev->bd_disk; in blkdev_zone_reset_all_emulated()
184 sector_t capacity = bdev_nr_sectors(bdev); in blkdev_zone_reset_all_emulated()
185 sector_t zone_sectors = bdev_zone_sectors(bdev); in blkdev_zone_reset_all_emulated()
207 bio = blk_next_bio(bio, bdev, 0, REQ_OP_ZONE_RESET | REQ_SYNC, in blkdev_zone_reset_all_emulated()
226 static int blkdev_zone_reset_all(struct block_device *bdev, gfp_t gfp_mask) in blkdev_zone_reset_all() argument
230 bio_init(&bio, bdev, NULL, 0, REQ_OP_ZONE_RESET_ALL | REQ_SYNC); in blkdev_zone_reset_all()
250 int blkdev_zone_mgmt(struct block_device *bdev, enum req_op op, in blkdev_zone_mgmt() argument
253 struct request_queue *q = bdev_get_queue(bdev); in blkdev_zone_mgmt()
254 sector_t zone_sectors = bdev_zone_sectors(bdev); in blkdev_zone_mgmt()
255 sector_t capacity = bdev_nr_sectors(bdev); in blkdev_zone_mgmt()
260 if (!bdev_is_zoned(bdev)) in blkdev_zone_mgmt()
263 if (bdev_read_only(bdev)) in blkdev_zone_mgmt()
274 if (!bdev_is_zone_start(bdev, sector)) in blkdev_zone_mgmt()
277 if (!bdev_is_zone_start(bdev, nr_sectors) && end_sector != capacity) in blkdev_zone_mgmt()
288 return blkdev_zone_reset_all_emulated(bdev, gfp_mask); in blkdev_zone_mgmt()
289 return blkdev_zone_reset_all(bdev, gfp_mask); in blkdev_zone_mgmt()
293 bio = blk_next_bio(bio, bdev, 0, op | REQ_SYNC, gfp_mask); in blkdev_zone_mgmt()
326 int blkdev_report_zones_ioctl(struct block_device *bdev, unsigned int cmd, in blkdev_report_zones_ioctl() argument
337 if (!bdev_is_zoned(bdev)) in blkdev_report_zones_ioctl()
347 ret = blkdev_report_zones(bdev, rep.sector, rep.nr_zones, in blkdev_report_zones_ioctl()
359 static int blkdev_truncate_zone_range(struct block_device *bdev, in blkdev_truncate_zone_range() argument
365 zrange->sector + zrange->nr_sectors > get_capacity(bdev->bd_disk)) in blkdev_truncate_zone_range()
372 return truncate_bdev_range(bdev, mode, start, end); in blkdev_truncate_zone_range()
379 int blkdev_zone_mgmt_ioctl(struct block_device *bdev, blk_mode_t mode, in blkdev_zone_mgmt_ioctl() argument
390 if (!bdev_is_zoned(bdev)) in blkdev_zone_mgmt_ioctl()
404 filemap_invalidate_lock(bdev->bd_inode->i_mapping); in blkdev_zone_mgmt_ioctl()
405 ret = blkdev_truncate_zone_range(bdev, mode, &zrange); in blkdev_zone_mgmt_ioctl()
422 ret = blkdev_zone_mgmt(bdev, op, zrange.sector, zrange.nr_sectors, in blkdev_zone_mgmt_ioctl()
427 filemap_invalidate_unlock(bdev->bd_inode->i_mapping); in blkdev_zone_mgmt_ioctl()