[PATCH 0/3] scsi: PR live migration PREEMPT fixes

Stefan Hajnoczi posted 3 patches an hour ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260401171927.396672-1-stefanha@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Fam Zheng <fam@euphon.net>
include/scsi/constants.h | 10 ++++++++++
hw/scsi/scsi-generic.c   | 24 ++++++++++++++++++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
[PATCH 0/3] scsi: PR live migration PREEMPT fixes
Posted by Stefan Hajnoczi an hour ago
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