Messages in this thread | | | Subject | Re: [PATCH 1/1] scsi: virtio-scsi: handle correctly case when all LUNs were unplugged | From | Paolo Bonzini <> | Date | Thu, 30 Jul 2020 00:10:19 +0200 |
| |
On 29/07/20 21:48, Maxim Levitsky wrote: > Commit 5ff843721467 ("scsi: virtio_scsi: unplug LUNs when events missed"), > almost fixed the case of mass unpluging of LUNs, but it missed a > corner case in which all the LUNs are unplugged at the same time. > > In this case INQUIRY ends with DID_BAD_TARGET. > Detect this and unplug the LUN. > > Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> > --- > drivers/scsi/virtio_scsi.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c > index 0e0910c5b9424..c7f0c22b6f11d 100644 > --- a/drivers/scsi/virtio_scsi.c > +++ b/drivers/scsi/virtio_scsi.c > @@ -351,6 +351,16 @@ static void virtscsi_rescan_hotunplug(struct virtio_scsi *vscsi) > /* PQ indicates the LUN is not attached */ > scsi_remove_device(sdev); > } > + > + else if (host_byte(result) == DID_BAD_TARGET) { > + /* > + * if all LUNs of a virtio-scsi device are unplugged, > + * it will respond with BAD TARGET on any INQUIRY > + * command. > + * Remove the device in this case as well > + */ > + scsi_remove_device(sdev); > + } > } > > kfree(inq_result); >
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
| |