When a host-managed zoned device is passed through to the guest system using scsi-generic driver, the maximum i/o size for the drive at the guest may end up being larger than at the host, causing i/o errors while accessing the backing zoned drive at the host system.
Two problems prevent correct setting of the maximum i/o transfer size at the guest in this configuration. One issue is specific to host-managed zone devices - scsi-generic driver doesn't recognize the SCSI type of HM-zoned devices. The other problem is that file-posix code for finding max_segments system value doesn't correctly handle SG nodes. The following two patches fix these problems. Based-on: <20200424084338.26803-16-arm...@redhat.com> Dmitry Fomichev (2): file-posix: Correctly read max_segments of SG nodes scsi-generic: Fix HM-zoned device scan block/file-posix.c | 55 +++++++++++++++++++++++----------------- hw/scsi/scsi-generic.c | 10 +++++--- include/scsi/constants.h | 1 + 3 files changed, 39 insertions(+), 27 deletions(-) -- 2.21.0