Bug 1338043

Summary: scsi-block fix - receive the right SCSI status on reads and writes
Product: Red Hat Enterprise Linux 7 Reporter: Karen Noel <knoel>
Component: qemu-kvm-rhevAssignee: Paolo Bonzini <pbonzini>
Status: CLOSED ERRATA QA Contact: FuXiangChun <xfu>
Severity: high Docs Contact:
Priority: high    
Version: 7.3CC: ahoness, ailan, chayang, huding, jherrman, jinzhao, juzhang, pbonzini, pezhang, pvilayat, virt-bugs, virt-maint, vrozenfe, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: storage
Fixed In Version: qemu-kvm-rhev-2.6.0-6.el7 Doc Type: Enhancement
Doc Text:
The vioscsi.sys file is now compatible with Microsoft Cluster Services, which enables the Windows virtio-scsi driver to support Windows Server Failover Clustering (WSFC) using shared storage. As a result, vioscsi.sys can pass all tests in the "Validate a Configuration" process.
Story Points: ---
Clone Of: 1219841 Environment:
Last Closed: 2016-11-07 21:11:01 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1305606, 1219841    
Attachments:
Description Flags
storage validate testing result none

Description Karen Noel 2016-05-20 21:33:34 UTC
This BZ is for adding scsi-block fixes to qemu-kvm-rhev, needed for MS cluster services.

See upstream work:

[Qemu-devel] [PATCH 0/4] scsi-block: receive the right SCSI status on reads and writes
http://marc.info/?l=qemu-devel&m=146296689703152&w=2

"scsi-block uses the block layer for reads and writes in order to avoid
allocating bounce buffers as big as the transferred data.  We know how
to split a large transfer to multiple reads and writes, and thus we can
use scsi-disk.c's existing code to do I/O in multiple chunks (for non-s/g
SCSI hosts) or through the DMA helpers (for s/g SCSI hosts).

Unfortunately, this has the side effect of eating the SCSI status except
in the very few cases where we can convert an errno code back to a SCSI
status.  It puts a big wrench in persistent reservations support in the
guest, for example.

Luckily, splitting a large transfer into multiple SBC commands is just as
easy, and this is what the last patch does.  It takes the original CDB,
patches in a modified starting sector and sector count, and executes the
SCSI command through blk_aio_ioctl.  It is also easy to pass a QEMUIOVector
to SG_IO, so that s/g SCSI hosts keep the performance."

Comment 1 Miroslav Rezanina 2016-06-06 10:51:26 UTC
Fix included in qemu-kvm-rhev-2.6.0-5.el7

Comment 3 Miroslav Rezanina 2016-06-15 13:08:17 UTC
Fix included in qemu-kvm-rhev-2.6.0-6.el7

Comment 14 FuXiangChun 2016-09-22 05:52:09 UTC
Created attachment 1203599 [details]
storage validate testing result

Comment 20 errata-xmlrpc 2016-11-07 21:11:01 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2673.html