block: Implement support for zoned block devices
authorHannes Reinecke <hare@suse.de>
Tue, 18 Oct 2016 06:40:33 +0000 (15:40 +0900)
committerJens Axboe <axboe@fb.com>
Tue, 18 Oct 2016 16:05:40 +0000 (10:05 -0600)
commit6a0cb1bc106fc07ce0443303bcdb7f7da5131e5c
treee5c93c3d58ff01ca1d825805cb643da04a46d8c6
parent2d253440b5afb128d22ccdae812dde9ba77a2cca
block: Implement support for zoned block devices

Implement zoned block device zone information reporting and reset.
Zone information are reported as struct blk_zone. This implementation
does not differentiate between host-aware and host-managed device
models and is valid for both. Two functions are provided:
blkdev_report_zones for discovering the zone configuration of a
zoned block device, and blkdev_reset_zones for resetting the write
pointer of sequential zones. The helper function blk_queue_zone_size
and bdev_zone_size are also provided for, as the name suggest,
obtaining the zone size (in 512B sectors) of the zones of the device.

Signed-off-by: Hannes Reinecke <hare@suse.de>
[Damien: * Removed the zone cache
         * Implement report zones operation based on earlier proposal
           by Shaun Tancheff <shaun.tancheff@seagate.com>]
Signed-off-by: Damien Le Moal <damien.lemoal@hgst.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@seagate.com>
Tested-by: Shaun Tancheff <shaun.tancheff@seagate.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/Kconfig
block/Makefile
block/blk-zoned.c [new file with mode: 0644]
include/linux/blkdev.h
include/uapi/linux/Kbuild
include/uapi/linux/blkzoned.h [new file with mode: 0644]