These patches are for QEMU 11.1 and 11.0-stable because they are not release
blockers.
Testing SCSI Persistent Reservation live migration with the Linux LIO iSCSI
target exposed two issues:
1. The LIO target interprets the request's TYPE field even though the spec says
it should be ignored. This led to PREEMPT commands failing on the LIO
target. Work around this by sending a "valid" TYPE field value. I have also
contacted the LIO maintainers about improving spec-compliance but QEMU needs
to work with existing targets.
2. The LIO target removes all matching registrations, including the I_T nexus
that is sending the PREEMPT command, when PREEMPT is used to remove
registrations rather than preempt a reservation. This actually appears to
comply with the spec, but the hardware target I previously tested against
would not remove the calling I_T nexus' registration and therefore QEMU's
behavior was wrong. Implement a fix that works regardless of the target.
Stefan Hajnoczi (3):
scsi: adjust error_prepend() formatting
scsi: always send valid PREEMPT TYPE field
scsi: register again after PREEMPT without reservation
include/scsi/constants.h | 10 ++++++++++
hw/scsi/scsi-generic.c | 24 ++++++++++++++++++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
--
2.53.0