diff options
author | Damien Le Moal <damien.lemoal@wdc.com> | 2018-10-12 19:08:46 +0900 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-10-25 11:17:40 -0600 |
commit | 65e4e3eee83d7a4ad7e8c5175b2a0ddfd3b5685f (patch) | |
tree | 26d26b7a24b1a45799b38fb80f1ebf02a84e5424 | |
parent | 72cd87576d1d885fc2968416ed5aca8f54749653 (diff) | |
download | lwn-65e4e3eee83d7a4ad7e8c5175b2a0ddfd3b5685f.tar.gz lwn-65e4e3eee83d7a4ad7e8c5175b2a0ddfd3b5685f.zip |
block: Introduce BLKGETNRZONES ioctl
Get a zoned block device total number of zones. The device can be a
partition of the whole device. The number of zones is always 0 for
regular block devices.
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | block/ioctl.c | 2 | ||||
-rw-r--r-- | include/uapi/linux/blkzoned.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/block/ioctl.c b/block/ioctl.c index f6d2c6f1f050..4825c78a6baa 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -534,6 +534,8 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, return blkdev_reset_zones_ioctl(bdev, mode, cmd, arg); case BLKGETZONESZ: return put_uint(arg, bdev_zone_sectors(bdev)); + case BLKGETNRZONES: + return put_uint(arg, blkdev_nr_zones(bdev)); case HDIO_GETGEO: return blkdev_getgeo(bdev, argp); case BLKRAGET: diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h index 281ac605f752..8f08ff9bdea0 100644 --- a/include/uapi/linux/blkzoned.h +++ b/include/uapi/linux/blkzoned.h @@ -142,5 +142,6 @@ struct blk_zone_range { #define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report) #define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range) #define BLKGETZONESZ _IOW(0x12, 132, __u32) +#define BLKGETNRZONES _IOW(0x12, 133, __u32) #endif /* _UAPI_BLKZONED_H */ |