From: Javier González <javier.gonz@xxxxxxxxxxx> This patchset extends zoned device functionality on top of the existing ZNS patchset that Keith sent. Changes since V2 - Remove debug code added by mistake - Address return value and constant naming by Damien - Leave rest of the comments for a V4, after discussion in the mailing list Changes since V1 - Remove new IOCTLs for zone management and zone values. I believe we will need the zone management IOCTL to support new ZNS features in the near future, but we will wait until we upstream these too. In the meantime, feedback on the IOCTL is welcome. We drop the zone values IOCTL completely - Niklas send a patch to expose mar / mor through sysfs already - we will extend on this if needed. - Reimplement zone offline transition to be a IOCTL in itself, as the rest of the existing zone transitions. In the process, implement a way for drivers to report zone feature support in the newly added feature flags. Refactor support for capacity to adopt this model. Here, note that we have maintained behaviour for the scsi driver, even though zone_size == zone_capacity - Reimplement the zone count consistency check to do a correct zone calculation. Move this logic to the initialization logic, instead of doing it each time we report zones. Thanks, Javier --- V1 cover letter --- Patches 1-5 are zoned block interface and IOCTL additions to expose ZNS values to user-space. One major change is the addition of a new zone management IOCTL that allows to extend zone management commands with flags. I recall a conversation in the mailing list from early this year where a similar approach was proposed by Matias, but never made it upstream. We extended the IOCTL here to align with the comments in that thread. Here, we are happy to get sign-offs by anyone that contributed to the thread - just comment here or on the patch. Patch 6 is nvme-only and adds an extra check to the ZNS report code to ensure consistency on the zone count. The patches apply on top of Jens' block-5.8 + Keith's V3 ZNS patches. Thanks, Javier Javier González (4): block: Add zone flags to queue zone prop. block: add support for zone offline transition nvme: Add consistency check for zone count block: add attributes to zone report block/blk-core.c | 2 ++ block/blk-zoned.c | 11 +++++++-- drivers/block/null_blk_zoned.c | 2 ++ drivers/nvme/host/core.c | 5 ++++- drivers/nvme/host/nvme.h | 6 +++-- drivers/nvme/host/zns.c | 41 +++++++++++++++++++++++++++++++++- drivers/scsi/sd.c | 2 ++ drivers/scsi/sd_zbc.c | 8 +++++-- include/linux/blk_types.h | 3 +++ include/linux/blkdev.h | 4 +++- include/uapi/linux/blkzoned.h | 32 +++++++++++++++++++++++++- 11 files changed, 106 insertions(+), 10 deletions(-) -- 2.17.1