On 7/12/23 15:40, Christoph Hellwig wrote:
The problem is that the SCSI stack does not send this command, so we
should do it in the driver. In fact we do it for
VIRTIO_SCSI_EVT_RESET_RESCAN (hotplug), but not for
VIRTIO_SCSI_EVT_RESET_REMOVED (hotunplug).
No, you should absolutely no do it in the driver. The fact that
virtio-scsi even tries to do some of its own LUN scanning is
problematic and should have never happened.
I agree that it should not do it for hot-unplug. However, for hot-plug
the spec says that a hotplug event for LUN 0 represents the addition of
an entire target, so why is it incorrect to start a REPORT LUNS scan if
the host doesn't tell you the exact LUN(s) that have been added?
There is a similar case in mpi3mr/mpi3mr_os.c, though it's only scanning
for newly added devices after a controller reset.
Paolo