Lines Matching refs:bdev

114 unsigned int bdev_nr_zones(struct block_device *bdev)  in bdev_nr_zones()  argument
116 sector_t zone_sectors = bdev_zone_sectors(bdev); in bdev_nr_zones()
118 if (!bdev_is_zoned(bdev)) in bdev_nr_zones()
120 return (bdev_nr_sectors(bdev) + zone_sectors - 1) >> in bdev_nr_zones()
144 int blkdev_report_zones(struct block_device *bdev, sector_t sector, in blkdev_report_zones() argument
147 struct gendisk *disk = bdev->bd_disk; in blkdev_report_zones()
150 if (!bdev_is_zoned(bdev) || WARN_ON_ONCE(!disk->fops->report_zones)) in blkdev_report_zones()
186 static int blkdev_zone_reset_all_emulated(struct block_device *bdev, in blkdev_zone_reset_all_emulated() argument
189 struct gendisk *disk = bdev->bd_disk; in blkdev_zone_reset_all_emulated()
190 sector_t capacity = bdev_nr_sectors(bdev); in blkdev_zone_reset_all_emulated()
191 sector_t zone_sectors = bdev_zone_sectors(bdev); in blkdev_zone_reset_all_emulated()
213 bio = blk_next_bio(bio, bdev, 0, REQ_OP_ZONE_RESET | REQ_SYNC, in blkdev_zone_reset_all_emulated()
232 static int blkdev_zone_reset_all(struct block_device *bdev, gfp_t gfp_mask) in blkdev_zone_reset_all() argument
236 bio_init(&bio, bdev, NULL, 0, REQ_OP_ZONE_RESET_ALL | REQ_SYNC); in blkdev_zone_reset_all()
256 int blkdev_zone_mgmt(struct block_device *bdev, enum req_op op, in blkdev_zone_mgmt() argument
259 struct request_queue *q = bdev_get_queue(bdev); in blkdev_zone_mgmt()
260 sector_t zone_sectors = bdev_zone_sectors(bdev); in blkdev_zone_mgmt()
261 sector_t capacity = bdev_nr_sectors(bdev); in blkdev_zone_mgmt()
266 if (!bdev_is_zoned(bdev)) in blkdev_zone_mgmt()
269 if (bdev_read_only(bdev)) in blkdev_zone_mgmt()
294 return blkdev_zone_reset_all_emulated(bdev, gfp_mask); in blkdev_zone_mgmt()
295 return blkdev_zone_reset_all(bdev, gfp_mask); in blkdev_zone_mgmt()
299 bio = blk_next_bio(bio, bdev, 0, op | REQ_SYNC, gfp_mask); in blkdev_zone_mgmt()
332 int blkdev_report_zones_ioctl(struct block_device *bdev, fmode_t mode, in blkdev_report_zones_ioctl() argument
344 q = bdev_get_queue(bdev); in blkdev_report_zones_ioctl()
348 if (!bdev_is_zoned(bdev)) in blkdev_report_zones_ioctl()
358 ret = blkdev_report_zones(bdev, rep.sector, rep.nr_zones, in blkdev_report_zones_ioctl()
370 static int blkdev_truncate_zone_range(struct block_device *bdev, fmode_t mode, in blkdev_truncate_zone_range() argument
376 zrange->sector + zrange->nr_sectors > get_capacity(bdev->bd_disk)) in blkdev_truncate_zone_range()
383 return truncate_bdev_range(bdev, mode, start, end); in blkdev_truncate_zone_range()
390 int blkdev_zone_mgmt_ioctl(struct block_device *bdev, fmode_t mode, in blkdev_zone_mgmt_ioctl() argument
402 q = bdev_get_queue(bdev); in blkdev_zone_mgmt_ioctl()
406 if (!bdev_is_zoned(bdev)) in blkdev_zone_mgmt_ioctl()
420 filemap_invalidate_lock(bdev->bd_inode->i_mapping); in blkdev_zone_mgmt_ioctl()
421 ret = blkdev_truncate_zone_range(bdev, mode, &zrange); in blkdev_zone_mgmt_ioctl()
438 ret = blkdev_zone_mgmt(bdev, op, zrange.sector, zrange.nr_sectors, in blkdev_zone_mgmt_ioctl()
443 filemap_invalidate_unlock(bdev->bd_inode->i_mapping); in blkdev_zone_mgmt_ioctl()