Lines Matching defs:bdev

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