OSDN Git Service

virtio-scsi: Send "REPORTED LUNS CHANGED" sense data upon disk hotplug events
authorVenu Busireddy <venu.busireddy@oracle.com>
Thu, 6 Oct 2022 19:49:46 +0000 (14:49 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 13 Oct 2022 21:38:33 +0000 (23:38 +0200)
commit8cc5583abe6419e7faaebc9fbd109f34f4c850f2
tree337bcecff7c0ab0523fe847506633ef857d78a7c
parent2ba341b3694cf3cff7b8a1df4cc765900d5c4f60
virtio-scsi: Send "REPORTED LUNS CHANGED" sense data upon disk hotplug events

Section 5.6.6.3 of VirtIO specification states, "Events will also
be reported via sense codes..." However, no sense data is sent when
VIRTIO_SCSI_EVT_RESET_RESCAN or VIRTIO_SCSI_EVT_RESET_REMOVED events
are reported (when disk hotplug/hotunplug events occur). SCSI layer
on Solaris depends on this sense data, and hence does not handle disk
hotplug/hotunplug events.

When the disk inventory changes, use the bus unit attention mechanism
to return a CHECK_CONDITION status with sense data of 0x06/0x3F/0x0E
(sense code REPORTED_LUNS_CHANGED).  The first device on the bus to
execute a command successfully will report and consume the unit
attention status.

Signed-off-by: Venu Busireddy <venu.busireddy@oracle.com>
Message-Id: <20221006194946.24134-1-venu.busireddy@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/scsi/scsi-bus.c
hw/scsi/virtio-scsi.c
include/hw/scsi/scsi.h