On 5/24/21 7:25 PM, Damien Le Moal wrote: > SCSI, ZNS and null_blk zoned devices support resetting all zones using > a single command (REQ_OP_ZONE_RESET_ALL), as indicated using the device > request queue flag QUEUE_FLAG_ZONE_RESETALL. This flag is not set for > device mapper targets creating zoned devices. In this case, a user > request for resetting all zones of a device is processed in > blkdev_zone_mgmt() by issuing a REQ_OP_ZONE_RESET operation for each > zone of the device. This leads to different behaviors of the > BLKRESETZONE ioctl() depending on the target device support for the > reset all operation. E.g. > > blkzone reset /dev/sdX > > will reset all zones of a SCSI device using a single command that will > ignore conventional, read-only or offline zones. > > But a dm-linear device including conventional, read-only or offline > zones cannot be reset in the same manner as some of the single zone > reset operations issued by blkdev_zone_mgmt() will fail. E.g.: > > blkzone reset /dev/dm-Y > blkzone: /dev/dm-0: BLKRESETZONE ioctl failed: Remote I/O error > > To simplify applications and tools development, unify the behavior of > the all-zone reset operation by modifying blkdev_zone_mgmt() to not > issue a zone reset operation for conventional, read-only and offline > zones, thus mimicking what an actual reset-all device command does on a > device supporting REQ_OP_ZONE_RESET_ALL. This emulation is done using > the new function blkdev_zone_reset_all_emulated(). The zones needing a > reset are identified using a bitmap that is initialized using a zone > report. Since empty zones do not need a reset, also ignore these zones. > The function blkdev_zone_reset_all() is introduced for block devices > natively supporting reset all operations. blkdev_zone_mgmt() is modified > to call either function to execute an all zone reset request. > > Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> > [hch: split into multiple functions] > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Apart from nit mentioned earlier, looks good. Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx> -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel