[SCSI] mptsas : Send DID_NO_CONNECT for pending IOs of removed device
Driver is modified to return DID_NO_CONNECT for all pending I/O requests for bus type SAS, if it founds the target is removed at the firmware level. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
c55b89fba9
commit
fea984034b
|
@ -628,6 +628,16 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ioc->bus_type == SAS) {
|
||||||
|
VirtDevice *vdevice = sc->device->hostdata;
|
||||||
|
|
||||||
|
if (!vdevice || !vdevice->vtarget ||
|
||||||
|
vdevice->vtarget->deleted) {
|
||||||
|
sc->result = DID_NO_CONNECT << 16;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sc->host_scribble = NULL;
|
sc->host_scribble = NULL;
|
||||||
sc->result = DID_OK << 16; /* Set default reply as OK */
|
sc->result = DID_OK << 16; /* Set default reply as OK */
|
||||||
pScsiReq = (SCSIIORequest_t *) mf;
|
pScsiReq = (SCSIIORequest_t *) mf;
|
||||||
|
@ -892,7 +902,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} /* end of address reply case */
|
} /* end of address reply case */
|
||||||
|
out:
|
||||||
/* Unmap the DMA buffers, if any. */
|
/* Unmap the DMA buffers, if any. */
|
||||||
scsi_dma_unmap(sc);
|
scsi_dma_unmap(sc);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue